Відмінності між версіями «URL»
Galja (обговорення • внесок) |
Galja (обговорення • внесок) |
||
Рядок 8: | Рядок 8: | ||
У цьому записі: | У цьому записі: | ||
− | '''схема''' | + | <br>'''схема''' |
− | схема звернення до ресурсу; в більшості випадків мається на увазі мережевий протокол | + | <br>схема звернення до ресурсу; в більшості випадків мається на увазі мережевий протокол |
− | '''логін''' | + | <br>'''логін''' |
− | ім'я користувача, використовуване для доступу до ресурсу | + | <br>ім'я користувача, використовуване для доступу до ресурсу |
− | '''пароль''' | + | <br>'''пароль''' |
− | пароль указаного користувача | + | <br>пароль указаного користувача |
− | '''хост''' | + | <br>'''хост''' |
− | повністю прописане доменне ім'я хоста в системі DNS або IP-адреса хоста у формі чотирьох десяткових чисел, розділених крапками; числа - натуральні в інтервалі від 0 до 255. | + | <br>повністю прописане доменне ім'я хоста в системі DNS або IP-адреса хоста у формі чотирьох десяткових чисел, розділених крапками; числа - натуральні в інтервалі від 0 до 255. |
− | '''порт''' | + | <br>'''порт''' |
− | порт хоста для підключення | + | <br>порт хоста для підключення |
− | '''URL-шлях''' | + | <br>'''URL-шлях''' |
− | уточнююча інформація про місце знаходження ресурсу; залежить від протоколу. | + | <br>уточнююча інформація про місце знаходження ресурсу; залежить від протоколу. |
− | '''параметри''' | + | <br>'''параметри''' |
− | рядок запиту з переданими на сервер (методом GET) параметрами. Роздільник параметрів - знак '''&'''. Приклад:? Параметр_1 = значення_1 & параметр_2 = значення_2 & параметр3 = | + | <br>рядок запиту з переданими на сервер (методом GET) параметрами. Роздільник параметрів - знак <br>'''&'''. Приклад:? Параметр_1 = значення_1 & параметр_2 = значення_2 & параметр3 = значення_3 |
− | якоря | + | <br>'''якоря''' |
− | ідентифікатор «якоря», що посилається на деяку частину (розділ) відкривається документа. | + | <br>ідентифікатор «якоря», що посилається на деяку частину (розділ) відкривається документа. |
На сьогоднішній день Тім Бернес-Лі визнає, що символ подвійної косої риси у структурі URL є надлишковим. | На сьогоднішній день Тім Бернес-Лі визнає, що символ подвійної косої риси у структурі URL є надлишковим. | ||
− | Схеми (протоколи) URL | + | =='''Схеми (протоколи) URL'''== |
− | Загальноприйняті схеми (протоколи) URL включають: | + | <br>Загальноприйняті схеми (протоколи) URL включають: |
− | • ftp - Протокол передачі файлів FTP | + | <br>• ftp - Протокол передачі файлів FTP |
− | • http - Протокол передачі гіпертексту HTTP | + | <br>• http - Протокол передачі гіпертексту HTTP |
− | • https - Спеціальна реалізація протоколу HTTP, що використовує шифрування (як правило, SSL або TLS) | + | <br>• https - Спеціальна реалізація протоколу HTTP, що використовує шифрування (як правило, SSL або TLS) |
− | • gopher - Протокол Gopher | + | <br>• gopher - Протокол Gopher |
− | • mailto - Адреса електронної пошти | + | <br>• mailto - Адреса електронної пошти |
− | • news - Новини Usenet | + | <br>• news - Новини Usenet |
− | • nntp - Новини Usenet через протокол NNTP | + | <br>• nntp - Новини Usenet через протокол NNTP |
− | • irc - Протокол IRC | + | <br>• irc - Протокол IRC |
− | • prospero - Служба каталогів Prospero Directory Service | + | <br>• prospero - Служба каталогів Prospero Directory Service |
− | • telnet - Посилання на інтерактивну сесію Telnet | + | <br>• telnet - Посилання на інтерактивну сесію Telnet |
− | • wais - База даних системи WAIS | + | <br>• wais - База даних системи WAIS |
− | • xmpp - Протокол XMPP (частина Jabber) | + | <br>• xmpp - Протокол XMPP (частина Jabber) |
− | • file - Ім'я локального файлу | + | <br>• file - Ім'я локального файлу |
− | • data - Безпосередні дані (Data: URL) | + | <br>• data - Безпосередні дані (Data: URL) |
− | Екзотичні схеми URL: | + | <br>Екзотичні схеми URL: |
− | • afs - Глобальне ім'я файлу у файловій системі Andrew File System | + | <br>• afs - Глобальне ім'я файлу у файловій системі Andrew File System |
− | • cid - Ідентифікатор вмісту для частин MIME | + | <br>• cid - Ідентифікатор вмісту для частин MIME |
− | • mid - Ідентифікатор повідомлень для електронної пошти | + | <br>• mid - Ідентифікатор повідомлень для електронної пошти |
− | • mailserver - Доступ до даних з поштових серверів | + | <br>• mailserver - Доступ до даних з поштових серверів |
− | • nfs - Ім'я файлу в мережевій файловій системі NFS | + | <br>• nfs - Ім'я файлу в мережевій файловій системі NFS |
− | • tn3270 - Емуляція інтерактивної сесії Telnet 3270 | + | <br>• tn3270 - Емуляція інтерактивної сесії Telnet 3270 |
− | • z39.50 - Доступ до служб ANSI Z39.50 | + | <br>• z39.50 - Доступ до служб ANSI Z39.50 |
− | • skype - Протокол Skype | + | <br>• skype - Протокол Skype |
− | • smsto - Відкриття редактора SMS в деяких мобільних телефонах | + | <br>• smsto - Відкриття редактора SMS в деяких мобільних телефонах |
− | • ed2k - Файлообмінна мережа eDonkey, побудована за принципом P2P | + | <br>• ed2k - Файлообмінна мережа eDonkey, побудована за принципом P2P |
+ | |||
+ | |||
+ | =='''Кодування URL'''== | ||
+ | |||
+ | Поява адрес URL стало суттєвим нововведенням в Інтернеті. Проте з моменту його винаходу і до цього дня стандарт URL володіє серйозним недоліком - у ньому можна використовувати тільки обмежений набір символів, навіть менший, ніж в ASCII: латинські літери, цифри і лише деякі розділові знаки. Якщо ми захочемо використовувати в URL символи кирилиці, або ієрогліфи, або, скажімо, специфічні символи французької мови, то потрібні нам символи повинні бути перекодовані особливим чином. | ||
+ | |||
+ | У російськомовній Вікіпедії щодня доводиться бачити приклад кодування URL, оскільки російська мова використовує символи кирилиці. Наприклад, рядок виду: | ||
+ | |||
+ | <nowiki>http://ru.wikipedia.org/wiki/Микрокредит</nowiki> | ||
+ | |||
+ | <br>кодується в URL як: | ||
+ | |||
+ | <nowiki>http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0%B8%D1%82</nowiki> | ||
+ | Таке перетворення відбувається в два етапи: спочатку кожен символ кирилиці кодується в Юнікод ([[UTF-8]]) в послідовність з двох байтів, а потім кожен байт цієї послідовності записується в [[шістнадцяткова система числення | шістнадцятковому]] поданні: | ||
+ | |||
+ | М → D0 и 9C → %D0%9C | ||
+ | и → D0 и B8 → %D0%B8 | ||
+ | к → D0 и BA → %D0%BA | ||
+ | р → D1 и 80 → %D1%80, и т. д. | ||
+ | Перед кожним таким шістнадцятковим кодом байта, згідно специфікації URL [2], ставиться знак відсотка (%) - звідси навіть виник англійський термін «percent-encoding», що позначає спосіб кодування символів в URL і URI. | ||
+ | |||
+ | <br>Інші поширені, але неприпустимі в URL символів кодується у такому відповідно: |
Версія за 00:39, 31 січня 2011
Історія
URL був винайдений Тімом Бернерсом-Лі в 1990 році в стінах Європейської ради з ядерних досліджень (фр. Conseil Européen pour la Recherche Nucléaire, CERN) у Женеві, Швейцарія. URL став фундаментальною інновацією в Інтернеті. Спочатку URL призначався для позначення місць розташування ресурсів (найчастіше файлів) у Всесвітній павутині. Зараз URL застосовується для позначення адрес майже всіх ресурсів Інтернету. Стандарт URL закріплений у документі RFC 1738, колишня версія була визначена в RFC 1630. Зараз URL позиціонується як частина більш загальної системи ідентифікації ресурсів URI, сам термін URL поступово поступається місцем більш широкому терміну URI. Стандарт URL регулюється організацією IETF і її підрозділами.
Структура URL
Спочатку локатор URL був розроблений як система для максимально спрощенї вказівки на місцезнаходження ресурсів у мережі. Локатор повинен був бути легко розширюваною і використовувати лише обмежений набір ASCII-символів (наприклад, пропуск ніколи не застосовується в URL). У зв'язку з цим, виникла наступна традиційна форма запису URL:
<Схема >://< логін>: <пароль> @ <хост>: <порт> / <URL-путь>? <Параметри> # <якір>
У цьому записі:
схема
схема звернення до ресурсу; в більшості випадків мається на увазі мережевий протокол
логін
ім'я користувача, використовуване для доступу до ресурсу
пароль
пароль указаного користувача
хост
повністю прописане доменне ім'я хоста в системі DNS або IP-адреса хоста у формі чотирьох десяткових чисел, розділених крапками; числа - натуральні в інтервалі від 0 до 255.
порт
порт хоста для підключення
URL-шлях
уточнююча інформація про місце знаходження ресурсу; залежить від протоколу.
параметри
рядок запиту з переданими на сервер (методом GET) параметрами. Роздільник параметрів - знак
&. Приклад:? Параметр_1 = значення_1 & параметр_2 = значення_2 & параметр3 = значення_3
якоря
ідентифікатор «якоря», що посилається на деяку частину (розділ) відкривається документа.
На сьогоднішній день Тім Бернес-Лі визнає, що символ подвійної косої риси у структурі URL є надлишковим.
Схеми (протоколи) URL
Загальноприйняті схеми (протоколи) URL включають:
• ftp - Протокол передачі файлів FTP
• http - Протокол передачі гіпертексту HTTP
• https - Спеціальна реалізація протоколу HTTP, що використовує шифрування (як правило, SSL або TLS)
• gopher - Протокол Gopher
• mailto - Адреса електронної пошти
• news - Новини Usenet
• nntp - Новини Usenet через протокол NNTP
• irc - Протокол IRC
• prospero - Служба каталогів Prospero Directory Service
• telnet - Посилання на інтерактивну сесію Telnet
• wais - База даних системи WAIS
• xmpp - Протокол XMPP (частина Jabber)
• file - Ім'я локального файлу
• data - Безпосередні дані (Data: URL)
Екзотичні схеми URL:
• afs - Глобальне ім'я файлу у файловій системі Andrew File System
• cid - Ідентифікатор вмісту для частин MIME
• mid - Ідентифікатор повідомлень для електронної пошти
• mailserver - Доступ до даних з поштових серверів
• nfs - Ім'я файлу в мережевій файловій системі NFS
• tn3270 - Емуляція інтерактивної сесії Telnet 3270
• z39.50 - Доступ до служб ANSI Z39.50
• skype - Протокол Skype
• smsto - Відкриття редактора SMS в деяких мобільних телефонах
• ed2k - Файлообмінна мережа eDonkey, побудована за принципом P2P
Кодування URL
Поява адрес URL стало суттєвим нововведенням в Інтернеті. Проте з моменту його винаходу і до цього дня стандарт URL володіє серйозним недоліком - у ньому можна використовувати тільки обмежений набір символів, навіть менший, ніж в ASCII: латинські літери, цифри і лише деякі розділові знаки. Якщо ми захочемо використовувати в URL символи кирилиці, або ієрогліфи, або, скажімо, специфічні символи французької мови, то потрібні нам символи повинні бути перекодовані особливим чином.
У російськомовній Вікіпедії щодня доводиться бачити приклад кодування URL, оскільки російська мова використовує символи кирилиці. Наприклад, рядок виду:
http://ru.wikipedia.org/wiki/Микрокредит
кодується в URL як:
http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0%B8%D1%82 Таке перетворення відбувається в два етапи: спочатку кожен символ кирилиці кодується в Юнікод (UTF-8) в послідовність з двох байтів, а потім кожен байт цієї послідовності записується в шістнадцятковому поданні:
М → D0 и 9C → %D0%9C
и → D0 и B8 → %D0%B8 к → D0 и BA → %D0%BA р → D1 и 80 → %D1%80, и т. д.
Перед кожним таким шістнадцятковим кодом байта, згідно специфікації URL [2], ставиться знак відсотка (%) - звідси навіть виник англійський термін «percent-encoding», що позначає спосіб кодування символів в URL і URI.
Інші поширені, але неприпустимі в URL символів кодується у такому відповідно: