Заблудиться можно не только в лесу, но и в онлайне. И тому виной может стать неверный путь или адрес, ведущий к ресурсу. Вы не знаете, что такое URL адрес? Тогда прежде, чем пускаться в дальнейшее путешествие по виртуальному пространству, давайте разберемся с системой электронных адресов.

Что такое URL

URL является общепринятым стандартом записи адреса и указания на расположение ресурса в интернете. С английского его название ( Uniform Resource Locator ) переводится как единый указатель ресурсов. Можно встретить более раннюю расшифровку аббревиатуры URL — Universal Resource Locator ( универсальный локатор ресурсов ). Но оба значения скорее дополняют понятие URL , чем перечат друг другу.

Основной формат записи структуры URL адреса выглядит так:
://:@:/?#
— чаще всего имеется в виду протокол.
логин – логин пользователя, используемый для авторизации на ресурсе.
пароль – пароль пользователя для авторизации.
хост – доменное имя хоста.
порт – порт хоста, используемый во время подключения.
URL – путь, по которому находится запрашиваемый ресурс на сервере.
параметры и якорь – значение переменных и идентификатор на определенном ресурсе.

Передача значения переменных в строке запроса возможна лишь с помощью метода GET .

Рассмотрим формат URL адреса страницы запрашиваемого ресурса на практических примерах. На клиентской стороне URL отображается в адресной строке браузера:

Чаще всего встречаются такие варианты:

  • http:// ru.wikipedia.org/wiki/Заглавная_страница – для передачи запроса используется http ( протокол передачи гипертекста );
  • https://ru.wikipedia.org/wiki/Заглавная_страница — в качестве способа передачи используется https . Является защищенной формой протокола http , использующего шифрование ( SSL или TLS );
  • fttp://wikipedia.org/wiki/file.txt – протокол передачи файлов fttp ;
  • http://mail.ru/script.php?num=10&type=new&v=text – передача значений переменных в строке запроса с помощью метода GET .

Любой формат URL адреса представляет собой, прежде всего, символьную строку. В ее состав могут входить:
2; Латинские буквы.
2; Арабские цифры (0-9).
2; Зарезервированные символы («+», «=», «!» и другие).
2; Специальные символы – на них остановимся более подробно.

Использование специальных символов в URL

Конечно, таких уж слишком «специальных» символов в URL не используют. Но несколько есть:

  • ? – служит для отделения в строке запроса блока с передаваемыми параметрами;
  • & — отделяет передаваемые параметры друг от друга;
  • = — отделяет в параметре переменную от ее значения;
  • : — служит для отделения протокола от остальной части URL;
  • # — символ используется в локальной части адреса. Позволяет обратиться к определенной части запрашиваемой страницы;
  • @ — указывается в регистрационных данных пользователя и при передаче данных с помощью протокола mailto.

Но все это лишь теория. Поэтому перед тем, как узнать остальное, рассмотрим небольшой практический пример.

Наглядный пример

Возьмем для наглядности вот такую простую форму регистрации:

Вот ее код:

Первой строкой в начале формы мы прописали для нее файл обработчика (php) и метод передачи данных через URL адрес сервера:

Теперь приведем код файла обработчика (1.php) :

Введем данные в форму и отправим их для обработки на сервер. Вот что мы получим в итоге:

Обратите внимание на формат URL в адресной строке на первом скриншоте. После введения данных и нажатия на кнопку « Отправка данных » значения всех полей отправляются для обработки на сервер. А нас перенаправляет на страницу 1.php , где размещен код обработчика.

Перед тем, как посмотреть на результат обработки, взгляните на адресную строку на втором рисунке. В ней отображаются значения полей, переданных на обработку с помощью метода GET.

Для того чтобы скрыть данные, отправляемые на сервер, используется метод POST. Тогда приведенный выше URL будет выглядеть следующим образом:

Формат URL адресов на сайтах

Чаще всего на сайтах используется древовидная система URL . То есть правильный URL адрес состоит из нескольких вложенных друг в друга элементов, последний из которых и является нужной веб-страницей.

Для наглядности возьмем конкретный URL , являющейся одним из разветвлений адреса нашего сайта:

https://www.internet-technologies.ru/templates//page_2.html

Разберем его по частям:

  • www.internet-technologies.ru – эта часть является доменным именем сайта. Если набрать его в адресной строке браузера, то оно выведет на главную страницу сайта. В большинстве случаев это файл index. html ;
  • templates – данная часть адреса указывает на определенный раздел сайта. В нашем случае это раздел с шаблонами;
  • page_2.html – является конечным элементом URL , ведущего на веб-страницу тематического раздела ресурса.

Чаще всего URL адреса основных разделов полностью отображают карту сайта. Но не все так просто обстоит с переадресацией на сайтах, развернутых на основе популярных движков ( CMS ).

Особенности построения URL в WordPress

В WordPress , как и в любом движке, построенном на php , генерация всех страниц сайта происходит динамически. То есть одна часть берется из одного шаблона, другая генерируется « на лету » на основе нескольких.… Но такая летучесть имеет один существенный недостаток – наличие кусков передаваемых параметров в URL .

Причем это ущемляет не только эстетическую составляющую отображения адресов, но и неоднозначно воспринимается поисковиками. А это может негативно влиять на продвижение сайта:

Поэтому лучше использовать на своем сайте чистые URL адреса. Но где взять их, если CMS система не предусматривает возможности их редактирования.

Самый простой способ настройки отображения URL в WordPress – это использование специализированных плагинов:

  • Cyr-To-Lat – преобразует русские символы в адресах в латиницу;
  • Permalink Editor – добавляет дополнительные опции для настройки через админку (раздел «Постоянные ссылки»);
  • .html on pages – убирает расширение html c конца URL .

Ну а если и это не помогает, то нужно лезть собственными руками в само сердце CMS . Но это уже тема другого и более обширного по объему материала.

В URL некоторые символы должны кодироваться, в PHP для этого применяется функция urlencode() . По её алгоритму все символы, кроме латинских букв, — , _ , . заменяются знаком процента ( % ), за которым идут два шестнадцатеричных числа (поэтому результат зависит от кодировки), пробелы заменяются на знак сложения ( + ).

Так же есть функция rawurlencode() , которая выполняет туже роль, но с минимальным различием – символ

Единый указатель ресурса (от англ. Uniform Resource Locator — унифицированный указатель ресурса, сокр. URL [ ˌjuː ɑːr ˈel ]) — система унифицированных адресов электронных ресурсов, или единообразный определитель местонахождения ресурса (файла) [1] .

Используется как стандарт записи ссылок на объекты в Интернет (Гипертекстовые ссылки во «всемирной паутине» www).

Содержание

История [ править | править код ]

URL был изобретён Тимом Бернерсом-Ли в 1990 году в стенах Европейского совета по ядерным исследованиям (фр. Conseil Européen pour la Recherche Nucléaire, CERN ) в Женеве, Швейцария. URL стал фундаментальной инновацией в Интернете. Изначально URL предназначался для обозначения мест расположения ресурсов (чаще всего файлов) во Всемирной паутине. Сейчас URL применяется для обозначения адресов почти всех ресурсов Интернета. Стандарт URL закреплён в документе RFC 3986. Сейчас URL позиционируется как часть более общей системы идентификации ресурсов URI, сам термин URL постепенно уступает место более широкому термину URI. Стандарт URL регулируется организацией IETF и её подразделениями.

В 2009 году Тим Бернерс-Ли высказал мнение об избыточности двойного слеша // в начале URL, после указания сетевого протокола [2] .

Структура URL [ править | править код ]

Изначально локатор URL был разработан как система для максимально естественного указания на местонахождения ресурсов в сети. Локатор должен был быть легко расширяемым и использовать лишь ограниченный набор ASCII‐символов (к примеру, пробел никогда не применяется в URL). В связи с этим, возникла следующая традиционная форма записи URL:

схема схема обращения к ресурсу; в большинстве случаев имеется в виду сетевой протокол логин имя пользователя, используемое для доступа к ресурсу пароль пароль указанного пользователя хост полностью прописанное доменное имя хоста в системе DNS или IP-адрес хоста в форме четырёх групп десятичных чисел, разделённых точками; числа — целые в интервале от 0 до 255. порт порт хоста для подключения URL-путь уточняющая информация о месте нахождения ресурса; зависит от протокола. параметры строка запроса с передаваемыми на сервер (методом GET) параметрами. Начинается с символа ? , разделитель параметров — знак & . Пример: ?параметр_1=значение_1&параметр_2=значение_2&параметр3=значение_3 якорь идентификатор «якоря» (англ.) русск. с предшествующим символом # . Якорем может быть указан заголовок внутри документа или атрибут > (англ.) русск. элемента. По такой ссылке браузер откроет страницу и переместит окно к указанному элементу. Например, ссылка на этот раздел статьи: https://ru.wikipedia.org/wiki/URL#Структура_URL .

Схемы (протоколы) URL [ править | править код ]

Общепринятые схемы (протоколы) URL включают:

  • ftp — Протокол передачи файлов FTP
  • http — Протокол передачи гипертекстаHTTP
  • rtmp — Real Time Messaging Protocol проприетарный протокол потоковой передачи данных, в основном используется для передачи потокового видео и аудиопотоков с веб-камер через интернет.
  • rtsp — Потоковый протокол реального времени.
  • https — Специальная реализация протокола HTTP, использующая шифрование (как правило, SSL или TLS)
  • gopher — Протокол Gopher
  • mailto — Адрес электронной почты
  • news — Новости Usenet
  • nntp — Новости Usenet через протокол NNTP
  • irc — Протокол IRC
  • smb — Протокол SMB/CIFS
  • prospero — Служба каталогов Prospero Directory Service
  • telnet — Ссылка на интерактивную сессию Telnet
  • wais — База данных системы WAIS
  • xmpp — Протокол XMPP (часть Jabber)
  • file — Имя локального файла
  • data — Непосредственные данные (Data: URL)
  • tel — звонок по указанному телефону

Экзотические схемы 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
  • market — Android Маркет
  • steam — протокол Steam
  • bitcoin — Криптовалюта Биткойн
  • ob — OpenBazaar
  • tg — Telegram

Схемы URL в браузерах:

  • view-source — просмотр исходного кода указанной web-страницы в различных браузерах.
  • chrome — служебные страницы браузера Google Chrome или браузеров на движке Gecko [3] . В Яндекс. Браузере перенаправляет на browser://
  • opera — служебные страницы браузера Opera.
  • browser — служебные страницы Яндекс.Браузера.
ОфициальныеНеофициальные

Кодирование URL [ править | править код ]

Стандарт URL использует набор символов US-ASCII. Это имеет серьёзный недостаток, поскольку разрешается использовать лишь латинские буквы, цифры и несколько знаков пунктуации. Все другие символы необходимо перекодировать. Например, перекодироваться должны буквы кириллицы, буквы с диакритическими знаками, лигатуры, иероглифы. Перекодирующая кодировка описана в стандарте RFC 3986 и называется URL-encoding, URLencoded или percent‐encoding .

Пример кодирования можно видеть в русскоязычной Википедии, использующей в URL русский язык. Например, строка вида:

Реализация [ править | править код ]

Преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в UTF-8 в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении с предшествующим знаком процента (%):

!"# [5]$%& [5]*+, [5]: [5]; [5][5]>? [5][]^` <|>
%21%22%23%24%25%26%27%2A%2B%2C%3A%3B%3C%3D%3E%3F%5B%5D%5E%60%7B%7C%7D%20 [6]

Кодирование параметров в Internet Explorer и старом Firefox происходит несколько иначе [7] .

В некоторых случаях URL формируется с использованием кодирования Base58 [8] .

Стандарт IRI [ править | править код ]

Поскольку такому преобразованию подвергаются буквы всех алфавитов, кроме базовой латиницы, то URL со словами подавляющего большинства языков может стать нечитаемым для человека.

Это всё входит в противоречие с принципом интернационализма, провозглашаемого всеми ведущими организациями Интернета, включая W3C и ISOC. Эту проблему призван решить стандарт IRI (англ. Internationalized Resource Identifier ) — международных идентификаторов ресурсов, в которых можно было бы без проблем использовать символы Юникода, и которые поэтому не ущемляли бы права других языков. Хотя заранее сложно сказать, смогут ли когда‐либо идентификаторы IRI заменить столь широко используемые URL (и URI в целом).

Ограничение длины [ править | править код ]

Формально, длина URL не ограничена, но браузеры имеют ограничения по длине URL. Не рекомендуется использовать URL длиной более 2048 символов, так как Microsoft Internet Explorer имеет именно такое ограничение [9] .

Инициатива PURL [ править | править код ]

Ещё один кардинальный недостаток URL состоит в отсутствии гибкости. Ресурсы во Всемирной паутине и Интернете перемещаются, а ссылки в виде URL остаются, указывая на уже отсутствующие ресурсы. Это особенно болезненно для электронных библиотек, каталогов и энциклопедий. Для решения этой проблемы были предложены постоянные локаторы PURL (англ. Persistent Uniform Resource Locator ). В сущности это те же URL, но они указывают не на конкретное место расположения ресурса, а на запись в базе данных PURL, где, в свою очередь, записан уже конкретный URL‐адрес ресурса. При обращении к PURL сервер находит нужную запись в этой базе данных и перенаправляет запрос уже на конкретное местоположение ресурса. Если адрес ресурса меняется, то нет нужды исправлять все бесчисленные ссылки на него — достаточно лишь изменить запись в БД. В настоящий момент эта идея не стандартизирована и не имеет широкого распространения.