Что такое url uniform resource locator
Что такое URL-адрес?
Данная статья описывает Единый локатор ресурсов или Uniform Resource Locators (URLs), объясняет, что это такое, и описывает его структуру.
Введение
Наряду с понятиями гипертекста и протокола HTTP, понятие URL является одной из основных концепций Всемирной паутины. Это механизм, используемый браузерами для получения любого опубликованного во Всемирной сети ресурса.
URL обозначает Uniform Resource Locator. URL это лишь адрес, который выдан уникальному ресурсу в интернете. В теории, каждый корректный URL ведёт на уникальный ресурс. Такими ресурсами могут быть HTML-страница, CSS-файл, изображение и т.д. На практике, существуют некоторые исключения, когда, например, URL ведёт на ресурс, который больше не существует или который был перемещён. Поскольку ресурс, доступный по URL, а также сам URL обрабатываются веб-сервером, его владелец должен внимательно следить за размещаемыми ресурсами и связанными с ними URL.
Активное обучение
Подробная информация
Основы: анатомия URL
Вот несколько примеров URL:
Каждый из этих URLs могут быть напечатаны в адресной строке браузера, чтобы заставить его загрузить связанную страницу (ресурс).
Как использовать URL
Каждый URL может быть напечатан напрямую в адресной строке браузера, чтобы сразу получить запрошенный ресурс. Но это только вершина айсберга!
Язык HTML — который будет обсуждать позже (en-US) — позволяет активно использовать URL для:
URL адрес — что это такое и зачем он нужен
URL — Uniform Resource Locator является важным элементом всемирной паутины, который позволяет нам ориентироваться на страницах сайтов в интернете.
Благодаря Урлам у нас есть возможность в удобной навигации по всему интернету, на сайтах и любых других документах, где поставлены ссылки.
В прошлом материале мы рассмотрели, что такое гипертекст, сегодня мы продолжим тему работы всемирной паутины и разберемся с тем, что это такое УРЛ.
Что такое URL адрес
URL (Урл, Uniform Resource Locator) — это унифицированный указатель веб-ресурса. При помощи которого можно указать на странице вебсайта или документа местонахождение определенного ресурса/сайта или файла при помощи ссылки. Он фиксирует местонахождение — адрес.
Это простой и удобный формат — простая ссылка, которая позволяет сделать навигацию на страничках вебсайта удобной и комфортной для пользователя.
При создании всемирной паутины, чтобы сделать гипертекст возможным была придумана система идентификации ресурсов — URI. До недавнего времени она была разделена на типы, одним из которых и является URL, но сейчас эти термины взаимозаменяемы — об этом написано в следующих главах.
Структура URL адреса
Обычный URL адрес состоит из нескольких частей и разделяются между собой слешами:
1. Протокол: http, https, ftp и т.д. Пишется первым, в начале и указывает по какому протоколу следует обращаться к ресурсу.
2. Доменное имя: адрес ресурса, пишется в середине
3. Полный путь к контенту: папки и название файла. Пишется в конце, если ссылка ведет просто не на главную страницу.
https:// — протокол сайта
anisim.org — доменное имя
url-adres-chto-eto — название папки/файла в которой находится контент
полностью выглядит так: https://anisim.org/articles/url-adres-chto-eto/
Но, бывают и куда более сложные схемы. Например, с GET параметрами. Полная схема УРЛ на картинке ниже.
URI — что это
URI (Ури, Uniform Resource Identifier) — это унифицированный идентификатор ресурса. При помощи которого можно указать местонахождение ресурса, файла или другого контента при помощи ссылки. Кроме адреса включает в себя еще и местоположение на нем определенного контента / имя. Идентифицирует ресурс, как по его основному адресу, так и по его названию.
На данный момент разницы между URI и URL нет, W3C официально подтвердил, что они взаимозаменяемы и имеют одинаковые понятия, читайте об этом подробнее в следующей главе.
Очень важно об URI — URL — URN
Перед тем, как перейти к следующим главам обязательно прочтите этот материал, т.к. W3C выпустили официальный документ, объясняющий важные моменты по поводу УРЛ.
В W3C решили убрать неразбериху по поводу трактовки этих терминов — URL и URI, и разрешили использовать любой их них, когда имеешь ввиду ссылку на сайт. Т.е. теперь они взаимозаменяемы. Сейчас не нужно строго сегментировать URI на разные типы и все можно называть просто УРЛ. Если вам, кто-то скажет обратное или будет учить другому — дайте им ссылку на официальный документ — https://www.w3.org/TR/uri-clarification/.
URI включает в себя URL и URN, но может быть и совсем без них. К примеру, УРИ данные «data:,Hi%20World». Просто содержит данные и не имеет ни названия, ни местоположения.
Также, любой URI может быть URN при условии, если у него есть свойство названия/имени — даже при условии, если ресурс будет недоступным. Т.е, например, УРИ используемый в HTML для указания его типа: http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd. Даже если эта ссылка будет недоступна, URI по-прежнему будет называться XHTML типом документа. Это URN.
И из этого можно сделать вывод, что и URL тоже включает в себя URN. Поэтому, чтобы убрать ВСЮ эту путаницу и приняли решение, что хватит сегментировать URI на типы. Теперь УРЛ и УРИ — это одно и тоже официально и УРН к ним приписывается в тегах ссылки.
URN — что это
URN (Урн, Uniform Resource Name) — это унифицированное имя ресурса. Пишется в УРЛ — urn:данные для идентификации. Но сейчас может быть и простой гиперссылкой. Если гиперссылка имеет свойство имени — это URN.
Как в примере выше веб-ссылка — http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtdимеет имя — «Тип документа XHTML».
В заключение
Как видите все довольно просто. Надеюсь вам был полезен данный материал, и вы узнали для себя много нового и интересного. До новых встреч и стабильного вам серфинга в Веб.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
URL (Uniform Resource Locator)
Содержание
История
Структура
Общая схема или структура URL-адреса выглядит следующим образом [2] :
Т.е. переходя по url адресу с якорем можно сделать так, чтобы документ открылся не с самого начала, а с конкретного места или раздела.
Протоколы URL
Он представляет два автомобиля, дополнительную мета-информацию о них и указание адреса, где можно получить больше информации. Идея была в том, что клиент обработает эту информацию и приведет ее в удобный вид, где записи связаны с конечными страницами.
Первым популярным протоколом был FTP. Его создали в 1971 году для получения списков и скачивания файлов на удаленных машинах. Gopher был логическим продолжением этой идеи, так как он предлагал похожий листинг, но также включал механизмы получения мета-информации о записях. Это означает, что его можно было использовать и для других задач, вроде ленты новостей или простой базы данных. Однако, ему не хватало свободы и простоты, которые характеризуют HTTP и HTML.
HTTP — это очень простой протокол, особенно по сравнению с альтернативами вроде FTP или даже HTTP/2, популярность которого сегодня растет. Во-первых, HTTP полностью текстовый, в нем не используются бинарные элементы (которые могли бы значительно улучшить производительность). Тим Бернерс-Ли правильно решил, что текстовый формат позволит поколениям программистов легче разрабатывать и отлаживать приложения, использующие HTTP.Формально, длина URL не ограничена, но браузеры имеют ограничения по длине URL. Не рекомендуется использовать URL длиной более 2048 символов, так как Microsoft Internet Explorer имеет именно такое ограничение.
HTTP также не делает никаких допущений по поводу содержания. Несмотря на то, что он был разработан специально для передачи HTML, он позволяет указать тип содержания (с помощью MIME Content-Type, который был новым изобретением в свое время). Сам протокол довольно прост.
В основе сети лежит IP, протокол интернета. IP отвечает за передачу маленького пакета данных (около 1500 байтов) от одного компьютера другому. Поверх этого — TCP, который отвечает за передачу более крупных блоков данных вроде целых документов или файлов. TCP осуществляет гарантированную доставку с помощью множества IP-пакетов. Поверх этого живет протокол вроде HTTP или FTP, который указывает, какой формат данных использовать для пересылки с помощью TCP (или UDP или другого протокола) чтобы передать осмысленные и понятные данные. Можно сделать свой протокол, если захочется, собирая байты из сообщений TCP как угодно. Единственное требование заключается в том, чтобы получатель говорил на том же языке. Поэтому принято стандартизировать эти протоколы.
Кодирование URL
То есть русской букве к будет соответствовать последовательность %D0%BA и.т.д. Такое кодирование является общепринятым для путей к файлам или папкам, входящим в URL. Подмножество символов, которые разрешены в URL немного шире чем алфавитно-цифровые символы, так, в URL можно использовать дефис и подчеркивание, но нельзя, например, использовать одинарные или двойные кавычки. Некоторые символы используют для разделения параметров в URL, и их кодирование в этом случае будет неправомочным. В зависимости от отношения к кодированию специальных символов в javascript различают функции encodeURI и decodeURI, которые могут работать с полным URL, и, функции encodeURIComponent / decodeURIComponent, применяемые для параметров, входящих в URL. Вообще говоря, кодирование параметров может быть достаточно произвольным. Здесь разработчик может использовать любую схему кодировки, если состав ее символов будет коректно передаваться через сеть. Так, вместо строки кириллицы в utf-8 можно применить строку в кодировке Windows 1251. В этом случае строка будет выглядеть как:
Порты протоколов URL
Историю Gopher и HTTP можно проследить по их номерам портов. Gopher — это 70, HTTP 80. Порт для HTTP был установлен (скорее всего Джоном Постелом из IANA) по запросу Тима Бернерса-Ли между 1990 и 1992 годами. Концепция регистрации «номеров портов» появилась еще до интернета. В оригинальном протоколе NCP, на котором работала сеть ARPANET, удаленные адреса были идентифицированы с помощью 40 битов. Первые 32 указывали на удаленный хост, это похоже на то, как IP работает сегодня. Последние 8 бит назывались также AEN (“Another Eight-bit Number” или «Еще одно восьмибитное число»), и использовались для схожих с портом целей: разделить сообщения, имеющие разные предназначения. Другими словами, адрес указывал на машину, куда нужно доставить сообщение, а AEN (или номер порта) указывал на приложение, которому нужно доставить сообщение. Они быстро запросили, чтобы пользователи регистрировали эти «номера сокетов» для ограничения потенциальных коллизий. Когда номера портов расширили до 16 бит в TCP/IP, процесс регистрации продолжился. Не смотря на то, что у протоколов есть порт по умолчанию, имеет смысл позволять вручную указывать порт для упрощения локальной разработки и для работы с несколькими сервисами на одной машине. Такая же логика лежала в основе добавления www. в адреса сайтов. В то время было сложно представить, чтобы кто-то получал доступ к корню своего домена чтобы всего лишь захостить «экспериментальный» веб-сайт. Но если давать пользователям имя хоста для конкретной машины (dx3.cern.ch), то начнутся проблемы когда появится необходимость заменить машину. Если использовать общий поддомен (www.cern.ch), то можно свободно менять место, куда указывает этот адрес.
Авторизация
В URL также можно включить логин и пароль. Браузер кодирует эти данные в формат Base64 и посылает в виде заголовка. Base64 используется только для того, чтобы можно было передавать запрещенные в заголовках символы. Он никак не скрывает логин и пароль. Это было проблемой, особенно до распространения SSL. Любой человек, который следит за вашим соединением, мог с легкостью увидеть пароль. Предлагали много альтернатив, в том числе Kerberos, который был и остается популярным протоколом безопасности. Как и с другими примерами нашей истории, простую базовую авторизацию было проще всего реализовать разработчикам браузеров (Mosaic). Так базовая авторизация стала первым и единственным решением до тех пор, пока разработчики не получили инструменты для создания собственных систем аутентификации.
Стандарт IRI
Поскольку такому сложному кодированию подвергаются буквы всех алфавитов, кроме базовой латиницы, то URL со словами подавляющего большинства языков может стать нечитаемым для человека. Это всё входит в противоречие с принципом интернационализма, провозглашаемого всеми ведущими организациями Интернета, включая W3C и ISOC. Эту проблему призван решить стандарт IRI (англ. Internationalized Resource Identifier) — международных идентификаторов ресурсов, в которых можно было бы без проблем использовать символы Юникода, и которые поэтому не ущемляли бы права других языков. Хотя заранее сложно сказать, смогут ли когда‐либо идентификаторы IRI заменить столь широко используемые URL (и URI в целом).
У современного URL есть огромное количество недостатков, среди них [5] :
По этим и другим причинам была предложена совершенно новая интерпретация URL под названием PURL. В рамках данного стандарта будет использоваться несколько иной подход. Все будет основано на существовании базы данных PURL, в которой и будут храниться все имена и пути к ресурсам. Система будет регулярно проверять эти ресурсы и, при необходимости, удалять или обновлять ссылки на них. Таким образом удастся решить три из пяти вышеперечисленных проблем. Что касается остальных, специалисты пока что находятся на стадии разработки их решений.
Обработка указателей универсальных ресурсов
Универсальный указатель ресурсов (URL) — это компактное представление расположения и метода доступа для ресурса, расположенного в Интернете. Каждый URL-адрес состоит из схемы (HTTP, HTTPS или FTP) и строки, зависящей от схемы. Эта строка может также содержать сочетание пути к каталогу, строки поиска или имени ресурса. Функции WinINet предоставляют возможность создавать, объединять, разбивать и канонизировать URL-адреса. Дополнительные сведения об URL-адресах см. в документе RFC-1738 по универсальным указателям ресурсов (URL).
Что такое канонический URL-адрес?
Формат всех URL-адресов должен соответствовать принятому синтаксису и семантике для доступа к ресурсам через Интернет. Каноническая обработка — это процесс форматирования URL-адреса для соблюдения синтаксиса и семантики.
Использование функций WinINet для управления URL-адресами
В следующей таблице перечислены функции URL-адресов.
Функция | Описание |
---|---|
интернетканоникализеурл | Каноникализес URL-адрес. |
интернеткомбинеурл | Объединяет базовый и относительный URL-адрес. |
интернеткраккурл | Выполняет синтаксический анализ строки URL-адреса в компоненты. |
интернеткреатеурл | Создает строку URL-адреса из компонентов. |
интернетопенурл | Начинает получение ресурса FTP, HTTP или HTTPS. |
URL-адреса канонизацию
Канонизацию URL-адрес — это процесс, который преобразует URL-адрес, который может содержать ненадежные символы, такие как пробелы, зарезервированные символы и т. д., в допустимый формат.
Функцию интернетканоникализеурл можно использовать для канонизировать URL-адресов. Эта функция ориентирована на задачи, поэтому приложение должно внимательно отслеживать его использование. Интернетканоникализеурл не проверяет, что переданный в него URL-адрес уже каноническ и что возвращаемый им URL-адрес является допустимым.
Следующие пять флагов управляют тем, как интернетканоникализеурл обрабатывает конкретный URL-адрес. Флаги можно использовать в сочетании. Если флаги не используются, функция кодирует URL-адрес по умолчанию.
Значение | Значение |
---|---|
_режим браузера _ ICU | Не закодировать или декодировать символы после » # » или «?» и не удалять конечные пробелы после «?». Если это значение не указано, то кодируется весь URL-адрес, а конечные пробелы удаляются. |
декодирование ICU _ | Преобразование всех последовательностей% XX в символы, включая escape-последовательности, перед синтаксическим анализом URL. |
ICU _ _ только символы _ кодирования | Закодировать только пробелы. |
ICU _ без _ кодирования | Не преобразуйте ненадежные символы в escape-последовательности. |
ICU _ нет _ мета | Не удаляйте в URL-адресе метаданные (например, «.» и «..»). |
_Флаг декодирования ICU должен использоваться только для канонических URL-адресов, так как предполагается, что все последовательности% XX являются управляющими кодами Escape-кодов и преобразуют их в символы, указанные в коде. Если в URL-адресе есть символ «%», который не является частью Escape-кода, ICU _ декодирование все еще обрабатывает его как один. Эта характеристика может привести к тому, что интернетканоникализеурл создаст недопустимый URL-адрес.
Объединение базового и относительного URL-адреса
Взлом URL-адресов
Если элемент указателя содержит адрес буфера, то элемент длины строки должен содержать размер этого буфера. Интернеткраккурл возвращает сведения о компоненте в виде строки в буфере и сохраняет длину строки в члене длины строки.
Если элемент указателя имеет значение NULL, то элементу длины строки может быть присвоено любое ненулевое значение. Интернеткраккурл хранит адрес первого символа строки URL-адреса, содержащей сведения о компоненте, и задает длину строки, равную количеству символов в оставшейся части строки URL-адреса, относящейся к компоненту.
Все члены-указатели имеют значение NULL с ненулевой точкой члена, соответствующей отправной точке в строке URL. Длину, хранящуюся в члене length, необходимо использовать для определения конца данных отдельного компонента.
Следующий пример возвращает компоненты URL-адреса в поле ввода, IDC _ PreOpen1 и возвращает компоненты в список, IDC _ преопенлист. Чтобы отобразить только сведения об отдельном компоненте, эта функция копирует символ непосредственно после сведений о компоненте в строке и временно заменяет его значением NULL.
Создание URL-адресов
Функция интернеткреатеурл использует сведения в структуре _ компонентов URL-адреса для создания унифицированного указателя ресурса.
Для каждого обязательного компонента член указателя должен содержать адрес буфера, содержащего данные. Элемент length должен иметь нулевое значение, если элемент указателя содержит адрес строки, завершающейся нулем; элементу length должна быть присвоена длина строки, если элемент указателя содержит адрес строки, которая не завершается нулем. Элемент указателя всех компонентов, которые не являются обязательными, должен иметь значение NULL.
Прямой доступ к URL-адресам
Для приложений, которые должны работать через прокси-сервер CERN, интернетопенурл можно использовать для доступа к каталогам и файлам FTP. Запросы FTP упаковываются в виде HTTP-запроса, который будет принимать прокси-сервер CERN.
На следующей схеме показано, какие дескрипторы используются для каждой функции.
WinINet не поддерживает реализации серверов. Кроме того, его не следует использовать из службы. для серверных реализаций или служб используйте Microsoft Windows HTTP services (WinHTTP).
Что такое URL (Uniform Resource Locator)
К огда Вы вводите адрес в свой веб-браузер, многие вещи происходят невидимо. И большинство из них определяется различными частями введенного Вами URL-адреса. Давайте рассмотрим это подробнее.
URL-адрес может состоять из нескольких частей. Существует имя хоста, которое сопоставляется с IP-адресом определенного ресурса в Интернете и связью дополнительной информации, которая сообщает Вашему браузеру и серверу, как общаться. Вы можете думать о том, что IP-адрес является чем-то вроде номера телефона. Имя хоста похоже на имя человека, номер телефона которого Вы хотите найти. И стандарт под названием Domain Name System (DNS) работает в фоновом режиме, как телефонная книга, переводя более удобные для пользователя имена хостов в IP-адреса, используемые сетями для маршрутизации трафика.
Помня об этой аналогии, давайте посмотрим на структуру URL-адреса и на то, как он работает.
Структура URL
Структура URL-адреса была впервые определена сэром Тимом Бернерсом-Ли, парнем, который создал веб-сайт и первый веб-браузер, — в 1994 году. URL-адреса в основном объединяют идею доменных имен с идеей использования пути к файлу для идентификации конкретной папки и файла. Таким образом, это похоже на использование пути, такого как C:\Documents\myfile.txt, в Windows, но с некоторым дополнительным материалом в начале, чтобы помочь найти нужный сервер в Интернете, где этот путь существует, и протокол, используемый для доступа к информации.
URL-адрес состоит из нескольких разных частей. Возьмем, к примеру, базовый URL-адрес http://www.example.com.
Этот простой URL-адрес разбит на два основных компонента: схема и полномочия.
Схема
Многие люди считают URL-адрес просто веб-адресом, но это не так просто. Веб-адрес — это URL-адрес, но все URL-адреса не являются веб-адресами. Другие сервисы, к которым Вы можете получить доступ в Интернете, например FTP, также являются URL-адресами. Часть схемы URL (эти буквы, за которыми следует двоеточие) обозначает протокол, с которым должно взаимодействовать приложение (например, Ваш веб-браузер) и сервер.
Веб-адреса являются наиболее распространенным URL-адресом, но есть и другие. Таким образом, Вы можете увидеть такие схемы, как:
В современных браузерах схема не является технически необходимой частью URL-адреса. Если Вы введете веб-сайт, например «guidepc.ru», Ваш браузер автоматически определит правильный протокол для использования. Тем не менее, некоторые другие приложения (и протоколы) требуют использования схемы.
Полномочия
Часть полномочий URL (которому предшествуют два слэша) сама разбивается на кучу частей. Начнем с очень простого URL-адреса, который приведет Вас на домашнюю страницу веб-сайта.
В этом простом примере вся часть «www.example.com» называется именем хоста, и она разрешает IP-адрес. Вы также можете ввести IP-адрес в адресную строку браузера, а не имя хоста, если вам это известно.
Но при анализе имени хоста он помогает прочитать его назад, чтобы понять, что происходит, поэтому вот те компоненты:
Это самый простой пример раздела полномочий URL-адреса, но все может усложниться. Есть два других компонента, которые могут содержать раздел полномочий:
Итак, это схема и часть полномочий URL-адреса, но, как Вы могли догадаться, просмотрев много URL-адресов при просмотре веб-страниц, они могут включать в себя еще больше вещей.
Пути, запросы и фрагменты
Есть три дополнительные части URL-адреса, которые Вы можете увидеть после части полномочий: пути, запросы и фрагменты. Вот как они работают.
Раздел полномочий URL-адреса получает Ваш браузер (или любое другое приложение) на нужный сервер в сети. Следующий путь, который работает так же, как путь в Windows, macOS или Linux, попадает в нужную папку или файл на этом сервере. Пути предшествует косая черта, и между каждым каталогом и подкаталогом есть косая черта, например:
Последняя часть — это имя файла, который открывается при доступе к веб-сайту. Хотя Вы не видите его в адресной строке, это не значит, что его нет. Некоторые языки, используемые для создания веб-страниц, скрывают имя файла и расширение, которое Вы просматриваете. Это упрощает запоминание и ввод URL-адреса и дает ему более чистый вид.
Запрос
Часть запроса URL-адреса используется для идентификации вещей, которые не являются частью строгой структуры пути. Чаще всего Вы увидите, что они используются при выполнении поиска или когда веб-страница передает данные через форму. Перед частью запроса предшествует знак вопроса и приходит после пути (или после имени хоста, если путь не включен).
В качестве примера возьмем этот URL-адрес, который был представлен, когда мы искали на aliexpress по ключевому слову «wi-fi»:
Форма поиска передала информацию поисковой системе aliexpress. После вопросительного знака Вы можете увидеть, что в запросе есть две части: URL-адрес для поиска (это часть «wholesale?») и ключевые слова, которые мы набрали (это «SearchText=wifi»).
Это довольно простой пример, и Вы часто увидите URL-адреса с дополнительными (и более сложными) переменными. Например, вот URL, когда мы искали в Google по ключевому слову «guidepc»:
Как Вы можете видеть, там есть какая-то другая информация. В этом случае Вы можете увидеть, что есть дополнительная информация, указывающая язык поиска, браузер, который мы использовали (Chrome), и даже номер версии браузера.
Фрагмент
Конечный компонент URL-адреса, который Вы можете увидеть, называется фрагментом. Фрагменту предшествует хэш-метка (#) и используется для указания определенного местоположения на веб-странице. При кодировании веб-страницы разработчики могут создавать привязки для определенного текста, например заголовки. Когда соответствующий фрагмент используется в конце URL-адреса, Ваш браузер загрузит страницу, а затем перейдет к этому якорю. Якоря и URL-адреса с фрагментами часто используются для создания таблиц контента на веб-страницах, чтобы упростить навигацию.
Вот пример. Страница Википедии о ренессансе — довольно длинный документ, и он разбит примерно на 14 разделов, каждый из которых имеет несколько подразделов. Но каждый заголовок на странице содержит привязку, а оглавление в верхней части статьи содержит ссылки, которые позволяют перейти к различным разделам. Эти ссылки работают, включая фрагменты.
Вы также можете использовать эти фрагменты непосредственно в своей адресной строке или в качестве разделяемых ссылок. Скажем, например, Вы хотели показать кому-то раздел этой страницы, который содержим информацию о науке. Вы можете просто отправить им эту ссылку:
Часть «#Наука» в конце URL-адреса перемещается прямо в этот раздел после загрузки страницы.
Итак, теперь Вы знаете больше, чем когда-либо хотели узнать о том, как работают URL-адреса.