Схема доступа к ресурсу через протокол передачи гипертекста: Http (hypertext transfer protocol) — Национальная библиотека им. Н. Э. Баумана

Содержание

запросы — структура (заголовок и тело), методы, строка статуса и коды состояния, ответы

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

Базово о протоколе HTTP

HTTP (HyperText Transfer Protocol, дословно — «протокол передачи гипертекста») представляет собой протокол прикладного уровня, используемый для доступа к ресурсам Всемирной Паутины. Под термином гипертекст следует понимать текст, в понятном для человека представлении, при этом содержащий ссылки на другие ресурсы.

Данный протокол описывается спецификацией RFC 2616. На сегодняшний день наиболее распространенной версией протокола является версия HTTP/2, однако нередко все еще можно встретить более раннюю версию HTTP/1.1.

В обмене информацией по HTTP-протоколу принимают участие клиент и сервер. Происходит это по следующей схеме: 

  1. Клиент запрашивает у сервера некоторый ресурс.
  2. Сервер обрабатывает запрос и возвращает клиенту ресурс, который был запрошен.
Схема коммуникации устройств по HTTP-протоколу.

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

Подробнее о протоколе HTTP читайте по ссылке →

HTTP-сообщения: запросы и ответы

Данные между клиентом и сервером в рамках работы протокола передаются с помощью HTTP-сообщений. Они бывают двух видов:

  • Запросы (HTTP Requests) — сообщения, которые отправляются клиентом на сервер, чтобы вызвать выполнение некоторых действий. Зачастую для получения доступа к определенному ресурсу. Основой запроса является HTTP-заголовок.
  • Ответы (HTTP Responses) — сообщения, которые сервер отправляет в ответ на клиентский запрос.

Само по себе сообщение представляет собой информацию в текстовом виде, записанную в несколько строчек.

В целом, как запросы HTTP, так и ответы имеют следующую структуру:

  1. Стартовая строка (start line) — используется для описания версии используемого протокола и другой информации — вроде запрашиваемого ресурса или кода ответа. Как можно понять из названия, ее содержимое занимает ровно одну строчку.
  2. HTTP-заголовки (HTTP Headers) — несколько строчек текста в определенном формате, которые либо уточняют запрос, либо описывают содержимое тела сообщения.
  3. Пустая строка, которая сообщает, что все метаданные для конкретного запроса или ответа были отправлены.
  4. Опциональное тело сообщения, которое содержит данные, связанные с запросом, либо документ (например HTML-страницу), передаваемый в  ответе.

Рассмотрим атрибуты HTTP-запроса подробнее.

Стартовая строка

Стартовая строка HTTP-запроса состоит из трех элементов:

  1. Метод HTTP-запроса (method, реже используется термин verb). Обычно это короткое слово на английском, которое указывает, что конкретно нужно сделать с запрашиваемым ресурсом. Например, метод GET сообщает серверу, что пользователь хочет получить некоторые данные, а POST — что некоторые данные должны быть помещены на сервер.
  2. Цель запроса. Представлена указателем ресурса URL, который состоит из протокола, доменного имени (или IP-адреса), пути к конкретному ресурсу на сервере. Дополнительно может содержать указание порта, несколько параметров HTTP-запроса и еще ряд опциональных элементов.
  3. Версия используемого протокола (либо HTTP/1.1, либо HTTP/2), которая определяет структуру следующих за стартовой строкой данных.

В примере ниже стартовая строка указывает, что в качестве метода используется GET, обращение будет произведено к ресурсу /index.html, по версии протокола HTTP/1.1:

Основные структурные элементы URL.

Разберемся с каждым из названных элементов подробнее.

Методы

Методы позволяют указать конкретное действие, которое мы хотим, чтобы сервер выполнил, получив наш запрос. Так, некоторые методы позволяют браузеру (который в большинстве случаев является источником запросов от клиента) отправлять дополнительную информацию в теле запроса — например, заполненную форму или документ.

Ниже приведены наиболее используемые методы и их описание:

Разберемся с каждым из названных элементов подробнее.

МетодОписание
GETПозволяет запросить некоторый конкретный ресурс. Дополнительные данные могут быть переданы через строку запроса (Query String) в составе URL (например ?param=value).О составляющих URL мы поговорим чуть позже.
POSTПозволяет отправить данные на сервер. Поддерживает отправку различных типов файлов, среди которых текст, PDF-документы и другие типы данных в двоичном виде. Обычно метод POST используется при отправке информации (например, заполненной формы логина) и загрузке данных на веб-сайт, таких как изображения и документы.
HEADЗдесь придется забежать немного вперед и сказать, что обычно сервер в ответ на запрос возвращает заголовок и тело, в котором содержится запрашиваемый ресурс. Данный метод при использовании его в запросе позволит получить только заголовки, которые сервер бы вернул при получении GET-запроса к тому же ресурсу. Запрос с использованием данного метода обычно производится для того, чтобы узнать размер запрашиваемого ресурса перед его загрузкой.
PUTИспользуется для создания (размещения) новых ресурсов на сервере. Если на сервере данный метод разрешен без надлежащего контроля, то это может привести к серьезным проблемам безопасности.
DELETEПозволяет удалить существующие ресурсы на сервере. Если использование данного метода настроено некорректно, то это может привести к атаке типа «Отказ в обслуживании» (Denial of Service, DoS) из-за удаления критически важных файлов сервера.
OPTIONSПозволяет запросить информацию о сервере, в том числе информацию о допускаемых к использованию на сервере HTTP-методов.
PATCHПозволяет внести частичные изменения в указанный ресурс по указанному расположению.

URL

Получение доступа к ресурсам по HTTP-протоколу осуществляется с помощью указателя URL (Uniform Resource Locator). URL представляет собой строку, которая позволяет указать запрашиваемый ресурс и еще ряд параметров.

Использование URL неразрывно связано с другими элементами протокола, поэтому далее мы рассмотрим его основные компоненты и строение:

Поле Scheme используется для указания используемого протокола, всегда сопровождается двоеточием и двумя косыми чертами (://).

Host указывает местоположение ресурса, в нем может быть как доменное имя, так и IP-адрес.

Port, как можно догадаться, позволяет указать номер порта, по которому следует обратиться к серверу. Оно начинается с двоеточия (:), за которым следует номер порта. При отсутствии данного элемента номер порта будет выбран по умолчанию в соответствии с указанным значением Scheme (например, для http:// это будет порт 80).

Далее следует поле Path. Оно указывает на ресурс, к которому производится обращение. Если данное поле не указано, то сервер в большинстве случаев вернет указатель по умолчанию (например index.html).

Поле Query String начинается со знака вопроса (?), за которым следует пара «параметр-значение», между которыми расположен символ равно (=). В поле Query String могут быть переданы несколько параметров с помощью символа амперсанд (&) в качестве разделителя.

Не все компоненты необходимы для доступа к ресурсу. Обязательно следует указать только поля Scheme и Host.

Версии HTTP

Раз уж мы упомянули версию протокола как элемента стартовой строки, то стоит сказать об основных отличиях версий HTTP/1. X от HTTP/2.X.

Последняя стабильная, наиболее стандартизированная версия протокола первого поколения (версия HTTP/1.1) вышла в далеком 1997 году. Годы шли, веб-страницы становились сложнее, некоторые из них даже стали приложениями в том виде, в котором мы понимаем их сейчас. Кроме того, объем медиафайлов и скриптов, которые добавляли интерактивность страницам, рос. Это, в свою очередь, создавало перегрузки в работе протокола версии HTTP/1.1.

Стало очевидно, что у HTTP/1.1 есть ряд значительных недостатков:

  • Заголовки, в отличие от тела сообщения, передавались в несжатом виде.
  • Часто большая часть заголовков в сообщениях совпадала, но они продолжали передаваться по сети.
  • Отсутствовала возможность так называемого мультиплексирования — механизма, позволяющего объединить несколько соединений в один поток данных. Приходилось открывать несколько соединений на сервере для обработки входящих запросов.

С выходом HTTP/2 было предложено следующее решение: HTTP/1. X-сообщения разбивались на так называемые фреймы, которые встраивались в поток данных.

Фреймы данных (тела сообщения) отделялись от фреймов заголовка, что позволило применять сжатие. Вместе с появлением потоков появился и ранее описанный механизм мультиплексирования — теперь можно было обойтись одним соединением для нескольких потоков.

Единственное о чем стоит сказать в завершение темы: HTTP/2 перестал быть текстовым протоколом, а стал работать с «сырой» двоичной формой данных. Это ограничивает чтение и создание HTTP-сообщений «вручную». Однако такова цена за возможность реализации более совершенной оптимизации и повышения производительности.

Заголовки

HTTP-заголовок представляет собой строку формата «Имя-Заголовок:Значение», с двоеточием(:) в качестве разделителя. Название заголовка не учитывает регистр, то есть между Host и host, с точки зрения HTTP, нет никакой разницы. Однако в названиях заголовков принято начинать каждое новое слово с заглавной буквы. Структура значения зависит от конкретного заголовка. Несмотря на то, что заголовок вместе со значениями может быть достаточно длинным, занимает он всего одну строчку.

В запросах может передаваться большое число различных заголовков, но все их можно разделить на три категории:

  1. Общего назначения, которые применяются ко всему сообщению целиком.
  2. Заголовки запроса уточняют некоторую информацию о запросе, сообщая дополнительный контекст или ограничивая его некоторыми логическими условиями.
  3. Заголовки представления, которые описывают формат данных сообщения и используемую кодировку. Добавляются к запросу только в тех случаях, когда с ним передается некоторое тело.

Ниже можно видеть пример заголовков в запросе:

Самые частые заголовки запроса

ЗаголовокОписание
HostИспользуется для указания того, с какого конкретно хоста запрашивается ресурс. В качестве возможных значений могут использоваться как доменные имена, так и IP-адреса. На одном HTTP-сервере может быть размещено несколько различных веб-сайтов. Для обращения к какому-то конкретному требуется данный заголовок.
User-AgentЗаголовок используется для описания клиента, который запрашивает ресурс. Он содержит достаточно много информации о пользовательском окружении. Например, может указать, какой браузер используется в качестве клиента, его версию, а также операционную систему, на которой этот клиент работает.
ReferИспользуется для указания того, откуда поступил текущий запрос. Например, если вы решите перейти по какой-нибудь ссылке в этой статье, то вероятнее всего к запросу будет добавлен заголовок Refer: https://selectel.ru
AcceptПозволяет указать, какой тип медиафайлов принимает клиент. В данном заголовке могут быть указаны несколько типов, перечисленные через запятую (‘ , ‘). А для указания того, что клиент принимает любые типы, используется следующая последовательность — */*.
CookieДанный заголовок может содержать в себе одну или несколько пар «Куки-Значение» в формате cookie=value. Куки представляют собой небольшие фрагменты данных, которые хранятся как на стороне клиента, так и на сервере, и выступают в качестве идентификатора. Куки передаются вместе с запросом для поддержания доступа клиента к ресурсу. Помимо этого, куки могут использоваться и для других целей, таких как хранение пользовательских предпочтений на сайте и отслеживание клиентской сессии. Несколько кук в одном заголовке могут быть перечислены с помощью символа точка с запятой (‘ ; ‘), который  используется как разделитель.
AuthorizationИспользуется в качестве еще одного метода идентификации клиента на сервере. После успешной идентификации сервер возвращает токен, уникальный для каждого конкретного клиента. В отличие от куки, данный токен хранится исключительно на стороне клиента и отправляется клиентом только по запросу сервера. Существует несколько типов аутентификации, конкретный метод определяется тем веб-сервером или веб-приложением, к которому клиент обращается за ресурсом.

Тело запроса

Завершающая часть HTTP-запроса — это его тело. Не у каждого HTTP-метода предполагается наличие тела. Так, например, методам вроде GET, HEAD, DELETE, OPTIONS обычно не требуется тело. Некоторые виды запросов  могут отправлять данные на сервер в теле запроса: самый распространенный из таких методов — POST.

Ответы HTTP

HTTP-ответ является сообщением, которое сервер отправляет клиенту в ответ на его запрос. Его структура равна структуре HTTP-запроса: стартовая строка, заголовки и тело.

Строка статуса (Status line)

Стартовая строка HTTP-ответа называется строкой статуса (status line). На ней располагаются следующие элементы:

  1. Уже известная нам по стартовой строке запроса версия протокола (HTTP/2 или HTTP/1.1).
  2. Код состояния, который указывает, насколько успешно завершилась обработка запроса.
  3. Пояснение — короткое текстовое описание к коду состояния. Используется исключительно для того, чтобы упростить понимание и восприятие человека при просмотре ответа.

Так выглядит строка состояния ответа.

Коды состояния и текст статуса

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

КатегорияОписание
1xxКоды из данной категории носят исключительно информативный характер и никак не влияют на обработку запроса.
2xxКоды состояния из этой категории возвращаются в случае успешной обработки клиентского запроса.
3xxЭта категория содержит коды, которые возвращаются, если серверу нужно перенаправить клиента.
4xxКоды данной категории означают, что на стороне клиента был отправлен некорректный запрос. Например, клиент в запросе указал не поддерживаемый метод или обратился к ресурсу, к которому у него нет доступа.
5xxОтвет с кодами из этой категории приходит, если на стороне сервера возникла ошибка.

Полный список кодов состояния доступен в спецификации к протоколу, ниже приведены только самые распространенные коды ответов:

КатегорияОписание
200 OKВозвращается в случае успешной обработки запроса, при этом тело ответа обычно содержит запрошенный ресурс.
302 FoundПеренаправляет клиента на другой URL. Например, данный код может прийти, если клиент успешно прошел процедуру аутентификации и теперь может перейти на страницу своей учетной записи.
400 Bad RequestДанный код можно увидеть, если запрос был сформирован с ошибками. Например, в нем отсутствовали символы завершения строки.
403 ForbiddenОзначает, что клиент не обладает достаточными правами доступа к запрошенному ресурсу. Также данный код можно встретить, если сервер обнаружил вредоносные данные, отправленные клиентом в запросе.
404 Not FoundКаждый из нас, так или иначе, сталкивался с этим кодом ошибки. Данный код можно увидеть, если запросить у сервера ресурс, которого не существует на сервере.
500 Internal ErrorДанный код возвращается сервером, когда он не может по определенным причинам обработать запрос.

Помимо основных кодов состояния, описанных в стандарте, существуют и коды состояния, которые объявляются крупными сетевыми провайдерами и серверными платформами. Так, коды состояния, используемые Selectel, можно посмотреть здесь.

Заголовки ответа

Response Headers, или заголовки ответа, используются для того, чтобы уточнить ответ, и никак не влияют на содержимое тела. Они существуют в том же формате, что и остальные заголовки, а именно  «Имя-Значение» с двоеточием (:) в качестве разделителя.

Ниже приведены наиболее часто встречаемые в ответах заголовки:

КатегорияПримерОписание
ServerServer: ngnixСодержит информацию о сервере, который обработал запрос. 
Set-CookieSet-Cookie:PHPSSID=bf42938fСодержит куки, требуемые для идентификации клиента. Браузер парсит куки и сохраняет их в своем хранилище для дальнейших запросов.
WWW-AuthenticateWWW-Authenticate: BASIC realm=»localhost»Уведомляет клиента о типе аутентификации, который необходим для доступа к запрашиваемому ресурсу.

Тело ответа

Последней частью ответа является его тело. Несмотря на то, что у большинства ответов тело присутствует, оно не является обязательным. Например, у кодов «201 Created» или «204 No Content» тело отсутствует, так как достаточную информацию для ответа на запрос они передают в заголовке.

Безопасность HTTP-запросов, или что такое HTTPs

HTTP является расширяемым протоколом, который предоставляет огромное количество возможностей, а также поддерживает передачу всевозможных типов файлов. Однако, вне зависимости от версии, у него есть один существенный недостаток, который можно заметить если перехватить отправленный HTTP-запрос:

Да, все верно: данные передаются в открытом виде. HTTP сам по себе не предоставляет никаких средств шифрования.

Но как же тогда работают различные банковские приложения, интернет-магазины, сервисы оплаты услуг и прочие приложения, в которых циркулирует чувствительная информация пользователей?

Время рассказать про HTTPs! 

HTTPs (HyperText Transfer Protocol, secure) является расширением HTTP-протокола, который позволяет шифровать отправляемые данные, перед тем как они попадут на транспортный уровень. Данный протокол по умолчанию использует порт 443.

Теперь если мы перехватим не HTTP , а HTTPs-запрос, то не увидим здесь ничего интересного:

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

Повысьте безопасность на сетевых портах с Selectel

Три межсетевых экрана для любых потребностей бизнеса.

Выбрать

Если хотите подробнее узнать о деталях работы протокола, читайте статью в нашем блоге →

Как отправить HTTP-запрос и прочитать его ответ

Теория это, конечно, отлично, но ничего так хорошо не закрепляет материал, как практика

Мы рассмотрим несколько способов, как написать HTTP-запрос в браузер, послать HTTP-запрос на сервер и получить ответ:

  1. Инструменты разработчика в браузере. 
  2. Утилита cURL.

Инструменты разработчика

Основной программой на наших устройствах, которая работает с HTTP-протоколом, в большинстве случаев является браузер. Помимо обычных пользователей, с браузерами часто работают и разработчики веб-приложений. Именно их инструментами мы воспользуемся для работы с запросами и ответами.

По нажатию комбинации клавиш [Ctrl+Shift+I] или просто [F12] в подавляющем большинстве современных браузеров у нас откроется окно инструментов разработчика, которая представляет собой панель с несколькими вкладками. Нужная нам вкладка обычно называется Network. Перейдем в нее, а в адресной строке введем URL того сайта, на который хотим попасть. В качестве примера воспользуемся сайтом блога Selectel — https://selectel.ru/blog/.

После нажатия Enter сайт начнет загружаться, а открытая вкладка Network — заполняться различными элементами, начиная все больше напоминать приборную панель самолета.

Не спешите пугаться. Это всего лишь список ресурсов, которые нужны для правильного отображения и работы сайта.

Нажав на любой из них, мы можем увидеть детали обработки отправленного запроса:

В данном запросе, например:

  • URL, к которому было совершено обращение — https://selectel. ru/blog,
  • Метод, который был использован в запросе — GET,
  • И в качестве кода возврата сервер вернул нам страницу с кодом статуса — 200 OK 

Утилита cURL

Следующий инструмент, с помощью которого мы сможем послать запрос на тот или иной сервер, это утилита cURL.

cURL (client URL) является небольшой утилитой командной строки, которая позволяет работать с HTTP и рядом других протоколов.

Для отправки запроса и получения ответа мы можем воспользоваться флагом -v и указанием URL того ресурса, который мы хотим получить. «Схему» HTTP-запроса можно увидеть на скрине ниже:

После запуска утилита выполняет: 

  • подключение к серверу, 
  • самостоятельно разрешает все вопросы, необходимые для отправки запроса по HTTPs, 
  • отправляет запрос, содержимое которого мы можем видеть благодаря флагу -v,
  •  принимая ответ от сервера, отображает его в командной строке «как-есть».  

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

Заключение

HTTP представляет собой расширяемый протокол прикладного уровня, на котором работает весь веб-сегмент интернета. В данной статье мы рассмотрели принцип его работы, структуру, «компоненты» HTTP-запросов. Коснулись вопросов отличия версий протокола, HTTPs  — его расширения, добавляющего шифрование. Разобрали устройство запроса, поняли, как можно отправить HTTP-запрос и получить ответ от сервера.

История WWW — Документация по Веб-программированию 0.0.0

Примечание

Интернет — это глобальная компьютерная сеть, объединяющая сотни миллионов компьютеров в общее информационное пространство. Интернет представляет свою инфраструктуру для прикладных сервисов различного назначения, самым популярным из которых является Всемирная Паутина – World Wide Web (www).

World Wide Web (www, web, рус.: веб, Всемирная Паутина) — распределенная информационная система, предоставляющая доступ к гипертекстовым документам по протоколу HTTP.

WWW — сетевая технология прикладного уровня стека TCP/IP, построенная на клиент-серверной архитектуре и использующая инфраструктуру Интернет для взаимодействия между сервером и клиентом (рис. 1).

Серверы www (веб-серверы) — это хранилища гипертекстовой (в общем случае) информации, управляемые специальным программным обеспечением.

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

Для загрузки и просмотра информации с веб-сайтов используются специальные программы — браузеры, способные обрабатывать гипертектовую разметку и отображать содержимое веб-страниц.

Рис. 1. Архитектура сервиса WWW

В основе www — взаимодействие между веб-сервером и браузерами по протоколу HTTP (HyperText Transfer Protocol). Веб-сервер — это программа, запущенная на сетевом компьютере и ожидающая клиентские запросы по протоколу HTTP. Браузер может обратиться к веб-серверу по доменному имени или по ip-адресу, передавая в запросе идентификатор требуемого ресурса. Получив запрос от клиента, сервер находит соответствующий ресурс на локальном устройстве хранения и отправляет его как ответ. Браузер принимает ответ и обрабатывает его соответствующим образом, в зависимости от типа ресурса (отображает гипертекст, показывает изображения, сохраняет полученные файлы и т.п.).

Основной тип ресурсов Всемирной паутины — гипертекстовые страницы. Гипертекст — это обычный текст, размеченный специальными управляющими конструкциями — тегами. Браузер считывает теги и интерпретирует их как команды форматирования при выводе информации. Теги описывают структуру документа, а специальные теги, якоря и гиперссылки, позволяют установить связи между веб-страницами и перемещаться как внутри веб-сайта, так и между сайтами.

Примечание

Т. Дж. Бернерс-Ли — «отец» Всемирной паутины

Сэр Тимоти Джон Бернерс-Ли — британский учёный-физик, изобретатель Всемирной паутины (совместно с Робертом Кайо), автор URI, HTTP и HTML. Действующий глава Консорциума Всемирной паутины (W3C). Автор концепции семантической паутины и множества других разработок в области информационных технологий. 16 июля 2004 года Королева Великобритании Елизавета II произвела Тима Бернерса-Ли в Рыцари-Командоры за «службу во благо глобального развития Интернета».

Компоненты WWW

Функционирование сервиса обеспечивается четырьмя составляющими:

  • URL/URI — унифицированный способ адресации и идентификации сетевых ресурсов;
  • HTML — язык гипертекстовой разметки веб-документов;
  • HTTP — протокол передачи гипертекста;
  • CGI — общий шлюзовый интерфейс, представляющий доступ к серверным приложениям.

Адресация веб-ресурсов. URL, URN, URI

Для доступа к любым сетевым ресурсам необходимо знать где они размещены и как к ним можно обратиться. Во Всемирной паутине для обращения к веб-документам изначально используется стандартизованная схема адресации и идентификации, учитывающую опыт адресации и идентификации таких сетевых сервисов, как e-mail, telnet, ftp и т.

п. — URL, Uniform Resource Locator.

URL (RFC 1738) — унифицированный локатор (указатель) ресурсов, стандартизированный способ записи адреса ресурса в www и сети Интернет. Адрес URL имеет гибкую и расширяемую структуру для максимально естественного указания местонахождения ресурсов в сети. Для записи адреса используется ограниченный набор символов ASCII. Общий вид адреса можно представить так:

<схема>://<логин>:<пароль>@<хост>:<порт>/<полный-путь-к-ресурсу>

Где:

схема

схема обращения к ресурсу: http, ftp, gopher, mailto, news, telnet, file, man, info, whatis, ldap, wais и т.п.

логин:пароль

имя пользователя и его пароль, используемые для доступа к ресурсу

хост

доменное имя хоста или его IP-адрес.

порт

порт хоста для подключения

полный-путь-к-ресурсу

уточняющая информация о месте нахождения ресурса (зависит от протокола).

Примеры URL:

http://example.com #запрос стартовой страницы по умолчанию

http://www. example.com/site/map.html #запрос страницы в указанном каталоге

http://example.com:81/script.php #подключение на нестандартный порт

http://example.org/script.php?key=value #передача параметров скрипту

ftp://user:[email protected] #авторизация на ftp-сервере

http://192.168.0.1/example/www #подключение по ip-адресу

file:///srv/www/htdocs/index.html #открытие локального файла

gopher://example.com/1 #подключение к серверу gopher

mailto://[email protected] #ссылка на адрес эл.почты

В августе 2002 года RFC 3305 анонсировал устаревание URL в пользу URI (Uniform Resource Identifier), еще более гибкого способа адресации, вобравшего возможности как URL, так и URN (Uniform Resource Name, унифицированное имя ресурса). URI позволяет не только указавать местонахождение ресурса (как URL), но и идентифицировать его в заданном пространстве имен (как URN). Если в URI не указывать местонахождение, то с его помощью можно описывать ресурсы, которые не могут быть получены непосредственно из Интернета (автомобили, персоны и т.

п.). Текущая структура и синтаксис URI регулируется стандартом RFC 3986, вышедшим в январе 2005 года.

Язык гипертекстовой разметки HTML

HTML (`HyperText Markup Language <>`_) — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц созданы при помощи языка HTML. Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме. HTML является приложением SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879.

HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. Для этого он представляет небольшой (сравнительно) набор структурных и семантических элементов — тегов. С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). В идеале, текст с разметкой HTML должен единообразно воспроизводиться на различном оборудовании (монитор ПК, экран органайзера, ограниченный по размерам экран мобильного телефона, медиа-проектор). Однако современное применение HTML очень далеко от его изначальной задачи. Со временем основная идея платформонезависимости языка HTML стала жертвой коммерциализации www и потребностей в мультимедийном и графическом оформлении.

Протокол HTTP

HTTP (`HyperText Transfer Protocol <>`_) — протокол передачи гипертекста, текущая версия HTTP/1.1 (RFC 2616). Этот протокол изначально был предназначен для обмена гипертекстовыми документами, сейчас его возможности существенно расширены в сторону передачи двоичной информации.

HTTP — типичный клиент-серверный протокол, обмен сообщениями идёт по схеме «запрос-ответ» в виде ASCII-команд. Особенностью протокола HTTP является возможность указать в запросе и ответе способ представления одного и того же ресурса по различным параметрам: формату, кодировке, языку и т. д. Именно благодаря возможности указания способа кодирования сообщения клиент и сервер могут обмениваться двоичными данными, хотя данный протокол является символьно-ориентированным.

HTTP — протокол прикладного уровня, но используется также в качестве «транспорта» для других прикладных протоколов, в первую очередь, основанных на языке XML (SOAP, XML-RPC, SiteMap, RSS и проч.).

Общий шлюзовый интерфейс CGI

CGI (`Common Gateway Interface <>`_) — механизм доступа к программам на стороне веб-сервера. Спецификация CGI была разработана для расширения возможностей сервиса www за счет подключения различного внешнего программного обеспечения. При использовании CGI веб-сервер представляет браузеру доступ к исполнимым программам, запускаемым на его (серверной) стороне через стандартные потоки ввода и вывода.

Интерфейс CGI применяется для создания динамических веб-сайтов, например, когда веб-страницы формируются из результатов запроса к базе данных. Сейчас популярность CGI снизилась, т. к. появились более совершенные альтернативные решения (например, модульные расширения веб-серверов).

Программное обеспечение сервиса WWW

Веб-серверы

Веб-сервер — это сетевое приложение, обслуживающее HTTP-запросы от клиентов, обычно веб-браузеров. Веб-сервер принимает запросы и возвращает ответы, обычно вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Веб-серверы — основа Всемирной паутины. С расширением спектра сетевых сервисов веб-серверы все чаще используются в качестве шлюзов для серверов приложений или сами представляют такие функции (например, Apache Tomcat).

Созданием программного обеспечения веб-серверов занимаются многие разработчики, но наибольшую популярность (по статистике http://netcraft.com) имеют такие программные продукты, как Apache (Apache Software Foundation), IIS (Microsoft), Google Web Server (GWS, Google Inc.) и nginx.

Apache — свободное программное обеспечение, распространяется под совместимой с GPL лицензией. Apache уже многие годы является лидером по распространенности во Всемирной паутине в силу своей надежности, гибкости, масштабируемости и безопасности.

IIS (Internet Information Services) — проприетарный набор серверов для нескольких служб Интернета, разработанный Майкрософт и распространяемый с серверными операционными системами семейства Windows. Основным компонентом IIS является веб-сервер, также поддерживаются протоколы FTP, POP3, SMTP, NNTP.

Google Web Server (GWS) — разработка компании Google на основе веб-сервера Apache. GWS оптимизирован для выполнения приложений сервиса Google Applications.

nginx [engine x] — это HTTP-сервер, совмещенный с кэширующим прокси-сервером. Разработан И. Сысоевым для компании Рамблер. Осенью 2004 года вышел первый публично доступный релиз, сейчас nginx используется на 9-12% веб-серверов. Браузеры

Браузер, веб-обозреватель (web-browser) — клиентское приложение для доступа к веб-серверам по протоколу HTTP и просмотра веб-страниц. Как правило браузеры дополнительно поддерживают и ряд других протоколов (например ftp, file, mms, pop3).

Первые HTTP-клиенты были консольными и работали в текстовом режиме, позволяя читать гипертекст и перемещаться по ссылкам. Сейчас консольные браузеры (такие, как lynx, w3m или links) практически не используются рядовыми посетителями веб-сайтов. Тем не менее такие браузеры весьма полезны для веб-разработчиков, так как позволяют «увидеть» веб-страницу «глазами» поискового робота.

Исторически первым браузером в современном понимании (т.е. с графическим интерфейсом и т.д.) была программа NCSA Mosaic, разработанная Марком Андерисеном и Эриком Бина. Mosaic имел довольно ограниченные возможности, но его открытый исходный код стал основой для многих последующих разработок.

Существует большое число программ-браузеров, но наибольшей популярностью пользуются следующие:

Source: StatCounter Global Stats — Browser Market Share

Internet Explorer (IE) — браузер, разработанный компанией Майкрософт и тесно интегрированный c ОС Windows. Платформозависим (поддержка сторонних ОС прекращена, начиная с версии 5). Единственный браузер, напрямую поддерживающий технологию ActiveX. Не полностью совместим со стандартами W3C, в связи с чем требует дополнительных затрат от веб-разработчиков.

Firefox — свободный кроссплатформенный браузер, разрабатываемый Mozilla Foundation и распространяемый под тройной лицензией GPL/LGPL/MPL. В основе браузера — движок Gekko, который изначально создавался для Netscape Communicator. Однако, вместо того, чтобы предоставить все возможности движка в стандартной поставке, Firefox реализует лишь основную его функциональность, предоставляя пользователям возможность модифицировать браузер в соответствии с их требованиями через поддержку расширений (add-ons), тем оформления и плагинов.

Safari — проприетарный браузер, разработаный корпорацией Apple и входящий в состав операционной системы Mac OS X. Бесплатно распространяется для операционных систем семейства Microsoft Windows.

В браузере используется уникальный по производительности интерпретатор JavaScript и еще ряд интересных для пользователя решений, которые отсутствуют или не развиты в других браузерах.

Chrome — кроссплатформенный браузер с открытым исходным кодом, разрабатываемый компанией Google. Первая стабильная версия вышла 11 декабря 2008 года. В отличие от многих других браузеров, в Chrome каждая вкладка является отдельным процессом. В случае если процесс обработки содержимого вкладки зависнет, его можно будет завершить без риска потери данных других вкладок. Еще одна особенность — интеллектуальная адресная строка (Omnibox). К возможности автозаполнения она добавляет поисковые функции с учетом популярности сайта, релевантности и пользовательских предпочтений (истории переходов).

Opera — кроссплатформенный многофункциональный веб-браузер, впервые представленный в 1994 году группой исследователей из норвежской компании Telenor. Дальнейшая разработка ведется Opera Software ASA.

Этот браузер обладает высокой скоростью работы и совместим с основными стандартами. Отличительными особенностями Opera долгое время являлись многостраничный интерфейс и возможность масштабирования веб-страниц целиком. На разных этапах развития в Opera были интегрированы возможности почтового/новостного клиента, адресной книги, клиента сети BitTorrent, агрегатора RSS, клиента IRC, менеджера закачек, WAP-браузера, а также поддержка виджетов — графические модулей, работающих вне окна браузера. Роботы-«пауки»

Наряду с браузерами, ориентированными на пользователя, существуют и специализированные клиенты-роботы («пауки», «боты»), подключающиеся к веб-серверам и выполняющие различные задачи автоматической обработки гипертекстовой информации. Сюда относятся, в первую очередь, роботы поисковых систем, таких как google.com, yandex.ru, yahoo.com и т.п., выполняющие обход веб-сайтов для последующего построения поискового индекса.

Единый индикатор ресурса | bartleby

Что такое унифицированный индикатор ресурсов (URI)?

URI — это строка символов, идентифицирующая ресурс. Он может идентифицировать все объекты, включая людей, места, концепции, информацию, веб-страницы и книги. Ресурсы могут быть или не быть подключены к Интернету.

Наиболее часто используемой формой унифицированного идентификатора ресурса является унифицированный указатель ресурса (URL). URL-адреса используются для идентификации и поиска веб-сайтов в Интернете.

Единый синтаксис индикатора ресурса

Каждый URI начинается со схемы. Синтаксис URI — это единое и расширяемое соглашение об именах, в котором спецификация каждой схемы ограничивает синтаксис других частей URI. Надмножеством всего синтаксиса схемы URI является общий синтаксис URI.

Общий синтаксис URI состоит из пяти компонентов:

URI = схема:[//полномочия] путь[?запрос][#фрагмент]

Кроме того, часть полномочий делится на три части:

Полномочия = [userinfo@]host[:port]

Общая форма синтаксиса URI представлена ​​ниже:

CC BY-SA 4.0 | Кредиты изображений: https://commons. wikimedia.org | OmenBreeze

Общий синтаксис URI включает следующие элементы.

Схема

Первым компонентом URI является схема. Схемы являются компонентами, нечувствительными к регистру. Они отличаются от других символов URI двоеточием. Схемы имеют строку символов, начинающуюся с буквы, за которой следует комбинация букв, цифр, плюс символ, символ точки или дефис. Обычно используемые схемы URI: протокол передачи гипертекста (HTTP), безопасный протокол передачи гипертекста (HTTPS), протокол передачи файлов (FTP), MailTo, файл и данные.

Имена схем URI должны быть зарегистрированы в Администрации адресного пространства Интернета (IANA). Однако допускается использование и незарегистрированных схем. Пример схемы URI:

telnet://192.0.2.121:83, здесь telnet — это схема URI.

Полномочия

Полномочия Единого индикатора ресурсов состоят из нескольких частей. Ему предшествует двойная косая черта (//).

  • Информация о пользователе : Этот подкомпонент представляет имя пользователя и необязательный пароль, которым предшествует двоеточие. За ним следует символ @.
  • Хост : Хост указывает зарегистрированное имя или адрес интернет-протокола (IP-адрес). После имени хоста к URI добавляется двоеточие, чтобы отличить его от других символов. Адреса IPv4 должны иметь десятичную запись с точками и должны быть заключены в квадратные скобки. Обычно они имеют шестнадцатеричный формат.
  • Порт : Порт — необязательный подкомпонент, которому предшествует двоеточие.

Путь

Путь в URI содержит последовательность сегментов, отмеченную косой чертой. Он всегда определяется для URI, но может быть нулевой длины (пустым). Если сегмент пуст, он будет состоять из двух последовательных косых черт в пути. Если присутствует компонент полномочий, то путь должен быть пустым или начинаться с косой черты. В противном случае путь не может начинаться с двух косых черт. Последняя часть пути называется slug.

Запрос

Часть запроса в компоненте является необязательной и предваряется вопросительным знаком (?). Он содержит строку запроса неиерархических данных. В соответствии с принятым соглашением запрос представляет собой последовательность пар атрибут-значение, разделенных амперсандом (&) или точкой с запятой. Это похоже на операцию, применяемую к объекту, способному запрашивать URI. Например, в следующем URI:

foo://techtalks.org:8042/over/there?name=eagle#beak

Часть запроса в приведенной выше ссылке указана как name=eagle

Фрагмент

Фрагмент также является необязательной частью URI. Ему предшествует решетка (#). Он состоит из идентификатора фрагмента, который указывает на вторичный ресурс, такой как заголовок раздела в сообщении, определяемый остальной частью URI. Если основным ресурсом является статья или документ на языке гипертекстовой разметки (HTML), фрагмент будет атрибутом id определенного элемента. В таком случае веб-браузеры будут прокручивать этот элемент при нажатии на ссылку. В качестве альтернативы, если идентификатор фрагмента пуст, это означает, что URI является целым объектом. В таких случаях знак решетки будет опущен.

Пример URI

Рассмотрим следующий URI:

https://[email protected]:123/forum/questions/?tag=networking&order=popular#bottom

Здесь части URI будет следующим:

  • https — схема URI.
  • paul.mark — это информация о пользователе.
  • www.myhome.com — это имя хоста.
  • 123 — это порт.
  • /forum/questions — это путь.
  • tag=networking&order=popular — это запрос.
  • дно — фрагмент.

Назначение URI

URI предоставляет простой метод распознавания интернет-ресурсов. Он использует разные идентификаторы ресурсов для разделения ресурсов одного контекста. Такие ресурсы, как электронные документы, веб-страницы, графика и другой информативный контент, можно идентифицировать с помощью URI. Индикаторы можно даже применять к ресурсам разного контекста.

Типы URI

Существует два типа унифицированных идентификаторов ресурсов:

  1. Единый указатель ресурсов (URL)
  2. Единые имена ресурсов (URN)

Единый указатель ресурсов

URL — это полезный, но неформальный тип URI, используемый для классификации и поиска веб-страниц в Интернете. Он включает в себя основной механизм доступа и местоположение. Унифицированный указатель ресурса идентифицирует ресурс. Он также указывает, как получить доступ к ресурсу и в каком месте он доступен. Он состоит из таких компонентов, как протокол, имя домена и имя субдомена, а также компоненты URI.

Например, URL-адрес http://myhome.com/wiki/Main_Page будет ссылаться на ресурс /wiki/Main_Page, имеющий представление в форме HTML, и соответствующий код можно найти с помощью HTTP: с сетевого узла, имеющего доменное имя (myhome.com).

URL-адреса являются подмножествами URI. Это означает, что каждый URL-адрес является URI. Однако обратное неверно. Несколько замечаний по поводу URL-адресов:

  • Если ресурс представляет собой веб-страницу, ее URL-адрес будет начинаться с протокола HTTP или HTTPS.
  • Если ресурс является файлом, его URL-адрес будет начинаться со схемы FTP.
  • URL адреса электронной почты будет начинаться с протокола mailto.
  • При изменении местоположения ресурса соответствующий URL-адрес также изменится. Это потому, что URL-адрес зависит от местоположения.

Примеры URL:

  • https://www.cordcuttersnews.com/category/news/covering-the-world-of-free-legal-streaming-services/
  • https://corporate.pluto .tv/спасибо за просмотр/
  • https://www.hypr.com/asymmetric-encryption/

Единое имя ресурса

Единое имя ресурса — это унифицированный идентификатор ресурса, который классифицирует ресурс, используя его имя в определенном пространстве имен. Его можно использовать для ссылки на ресурс без указания местоположения или способа доступа к нему. Однако URN не зависит от местоположения. Он продолжает существовать, даже если ресурс больше не существует или недоступен.

Кроме того, в отличие от URL-адресов, URN не указывают протокол, который они используют. URN состоит из трех частей: urn метки, двоеточия и последовательности символов в качестве идентификатора.

URL vs. URN

URL URN
Идентифицирует веб-страницы. Идентифицирует ресурсы.
Зависит от местоположения. Не зависит от местоположения.
В нем упоминается протокол, используемый для обнаружения или доступа к веб-странице. Протокол, используемый для обнаружения ресурса, не упоминается.
Когда веб-страница местоположения изменяется или становится недоступной, URL-адрес меняется. URN существует, даже когда ресурс становится недоступным или его местоположение изменяется.

Контекст и приложения

Единый идентификатор ресурса — широко используемая концепция в основах Интернета и веб-разработки. Он включен в курсы бакалавриата и магистратуры, такие как:

  • Бакалавриат в области компьютерных приложений
  • Бакалавр в области инженерии (компьютерные науки)
  • Сертификаты в области веб-дизайна и веб-разработки
  • Магистр компьютерных приложений
  • Магистр инженерных наук (информатика)

Практические задачи

1. Какой из приведенных ниже вариантов является допустимой формой URL-адреса?

  1. http://www.abc.org/sigmod
  2. www.google.com
  3. www.xyz.in
  4. http://www.abc.org/sigmod/

Ответ: Вариант a

Объяснение: Единый указатель ресурсов — это уникальное имя идентификатора для каждого документа в Интернете. Из приведенных выше вариантов только http://www.abc.org/sigmod соответствует требованиям URL-адреса.

2. В URL — http://www.google.com/search?q=silberschatz, какой аргумент используется для обработки URL?

  1. Google
  2. Google.com
  3. процентное кодирование
  4. q=silberschatz

Ответ: Вариант d

Объяснение. Аргументу или запросу в URL предшествует? символ. Следовательно, аргумент будет q=silberschatz.

3. Для чего нужен единый идентификатор ресурса в HTML?

  1. Для настройки изображения с веб-страницы с использованием ссылок URI
  2. Чтобы найти пространство имен или номера, такие как +1-816-555-1212
  3. Идентифицировать имя или ресурс в Интернете
  4. Чтобы найти ссылки на базовый URI

Ответ: имя или ресурс в Интернете.

4. Как называется адрес расположения HTML-документов?

  1. Унифицированный указатель ресурсов
  2. Базовый справочный протокол URI
  3. Относительный эталонный веб-сервер
  4. Процентное кодирование файла

Ответ: Вариант a

Объяснение: URL-адрес используется для определения адреса HTML-документа.

5. Что из нижеперечисленного является универсальным идентификатором ресурса, не зависящим от местоположения?

  1. Единый указатель ресурсов
  2. Единое имя ресурса
  3. Относительный ссылочный протокол
  4. Относительная ссылка пространства имен

Ответ:  Вариант b

Объяснение: URN зависит от местоположения. Он находит ресурс независимо от его местоположения и существования.

Распространенные ошибки

Хотя термины URI и URL часто взаимозаменяемы, они имеют разные значения и относятся к разным темам. Обязательно помнить, что URL-адреса являются типами URI.

  • Единое соглашение об именах
  • Список схем URI
  • Пространства имен расширяемого языка разметки (XML)
  • Пространство имен

Мы обеспечим вас пошаговыми решениями миллионов задач из учебников, экспертами в данной области в режиме ожидания 24/7, когда вы в тупике, и многое другое.

Ознакомьтесь с примером решения вопросов и ответов по информатике здесь!

*Время ответа зависит от темы и сложности вопроса. Среднее время отклика составляет 34 минуты для платных подписчиков и может быть больше для рекламных предложений.

Определение, основные отличия и многое другое

Развитие веб-сайта Домен

21 декабря 2022 г.

Sopha M.

10 мин Чтение

Хотя в некоторых случаях универсальный идентификатор ресурса (URI) и универсальный указатель ресурса (URL) могут использоваться взаимозаменяемо, это не одно и то же.

Знание разницы между URI и URL-адресом может упростить процесс разработки веб-сайта. Например, вы сможете упростить разработку REST API, поскольку URI или URL-адрес будут идентифицировать каждый ресурс в Интернете.

Короче говоря, основное различие между URI и URL-адресом заключается в том, что первый может быть именем, местоположением или и тем, и другим, тогда как последний предоставляет только местоположение ресурса.

В этой статье мы более подробно объясним различия между URI и URL, а также их структуру. Кроме того, мы включим варианты использования как URI, так и URL, вместе с их плюсами и минусами.

Что такое URI

URI или универсальный идентификатор ресурса — это строка символов, которая обычно идентифицирует любой веб-ресурс, используя имя, местоположение или и то, и другое. Унифицированный указатель ресурса (URL) и универсальное имя ресурса (URN) — это два типа URI.

Различия между URI и URL

Ознакомьтесь со сравнительной таблицей ниже, чтобы лучше понять основные различия между URI и URL.

УИН URL-адрес
URI — это аббревиатура от универсального идентификатора ресурса. URL-адрес — это аббревиатура от универсального указателя ресурсов.
URI — это надмножество URN и URL. URL-адрес является подмножеством URI.
URI идентифицирует ресурс и отличает его от других, используя имя, местоположение или и то, и другое. URL-адрес определяет веб-адрес или местоположение уникального ресурса.
URI содержит такие компоненты, как схема, полномочия, путь и запрос. URL-адрес имеет компоненты, аналогичные URI, но его полномочия состоят из доменного имени и порта.
Пример URI: ISBN 0-476-35557-4. Примером URL-адреса может быть https://hostinger.com.
URI обычно используется в XML, файлах библиотеки тегов и других файлах, таких как JSTL и XSTL. URL-адрес в основном предназначен для поиска веб-страниц в Интернете.
Схема URI может быть протоколом, спецификацией или обозначением, таким как HTTP, файл или данные. Схема URL — это протокол, такой как HTTP и HTTPS.

Типы URI

Выяснив ключевые различия между URI и URL, давайте подробно сосредоточимся на двух типах URI.

Унифицированные имена ресурсов (URN)

URN — это постоянный и независимый от местоположения идентификатор, предназначенный для постоянной идентификации ресурса. Это означает, что ресурс остается действительным, даже если его данные перемещаются в другое место.

Для этого URN использует схему для различения ресурсов. Например, urn:isbn:0405999832 идентифицирует книгу, используя номера ISBN.

Каждое универсальное имя ресурса (URN) состоит как минимум из трех компонентов:

  • URN – каждый URN использует префикс urn: спецификация схемы.
  • NID — относится к идентификатору пространства имен, который должен быть зарегистрирован в Администрации адресного пространства Интернета (IANA). Это могут быть буквы, цифры или дефис, за которым следует двоеточие.
  • НСС — это строка, относящаяся к пространству имен, которая идентифицирует интернет-ресурс. Он может содержать коды ASCII, цифры, знаки препинания и специальные символы.

Унифицированные указатели ресурсов (URL)

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

В отличие от URN, этот идентификатор интернет-ресурса не всегда является постоянным и независимым от местоположения, поскольку он указывает путь к ресурсу, который может меняться со временем. Кроме того, URL-адрес не соответствует схеме URN.

Основное различие между обоими идентификаторами заключается в том, что URN указывает только имя ресурса, в то время как URL-адресу требуется метод доступа или протоколы для получения местоположения ресурса.

Короче говоря, все URL-адреса являются URI, но не все URI являются URL-адресами.

Синтаксис URI

Синтаксис универсального идентификатора ресурса (URI) определяет его структуру, позволяя программе понять его. Вот общий синтаксис URI:

 схема:[//авторитет]путь[?запрос][#фрагмент] 

Теперь давайте рассмотрим элементы синтаксиса URI:

Схема

Схема — это первое компонент URI, определяющий систему адресации. В некоторых случаях схемы URI представляют собой протокол, используемый для доступа к ресурсу. Между тем, другие методы могут не указывать какой-либо протокол.

Например, схема about: используется в веб-браузерах, где ресурс встроен в клиент и не связан ни с каким конкретным протоколом.

Может содержать любую комбинацию букв, цифр, плюсов, точек или дефисов, за которыми следует двоеточие. Наиболее распространенные схемы URI включают HTTP, HTTPS, FTP, mailto и файл.

Например, если URI — file:website. com/pathtofile/intro.pdf , имя схемы — file .

Компонент полномочий

Это необязательный компонент, которому предшествует двойная косая черта и завершается косой чертой, знаком вопроса или решеткой. Он состоит из трех подкомпонентов:

  • Userinfo – включает имя пользователя и пароль, разделенные двоеточием.
  • Хост — состоит либо из IP-адреса, либо из зарегистрированного имени. IP-адрес должен быть заключен в скобки.
  • Порт — протокол, используемый для подключения к серверу. Это необязательный подкомпонент, за которым следует двоеточие.

Например, авторитетный компонент из file:website.com/pathtofile/intro.pdf — это Website.com/ .

Путь

Путь содержит последовательность сегментов данных, описывающую расположение ресурса в структуре каталогов. Он должен быть пустым или разделен косой чертой. Например, telnet://192.0.2.16:80/ или foo://info.example.com?fred — допустимый URI с пустым путем, поскольку нет указания на конкретное расположение ресурса.

Компонент запроса

Запрос — это необязательный компонент, содержащий строку запроса неиерархических данных. Часто это строка из пар ключ=значение . Этому компоненту предшествует вопросительный знак. Например, если URI — https://example.org/test/test1?search=test-question#part2 , компонент запроса — search=test-question .

Компонент фрагмента

Этот необязательный компонент включает идентификатор фрагмента, указывающий направление к вторичному ресурсу. Он относится к другому разделу основного ресурса. Фрагменту предшествует символ решетки, и он заканчивается концом URI.

Например, компонент фрагмента из https://example.org/test/test1?search=test-question#part2 равен part2 .

Что такое URL-адрес

URL-адрес или универсальный указатель ресурса — это идентификатор, который указывает только местоположение веб-страницы. Это относится к веб-адресу и возможностям доступа к нему, таким как HTTP, FTP и mailto.

Синтаксис URL-адреса

Каждый URL-адрес должен соответствовать синтаксису URI, который имеет структуру, аналогичную URI. Ниже приведен пример синтаксиса URL:

https://www.example.com/forum/questions/?tag=networking&order=newest#top

Приведенный выше URL можно разделить на следующие компоненты:

Схема

Первая часть синтаксис URL — это протокол, используемый для извлечения ресурса. Схема URL-адреса определяет тип приложения, которое ваше устройство использует для открытия URL-адреса. Например, FaceTime использует схему URL facetime:// для совершения звонков. Другие наиболее часто используемые протоколы для схем URL включают:

  • Протокол передачи гипертекста (HTTP) — позволяет пользователям получать доступ к данным с веб-страниц с помощью гипертекстовых ссылок.
  • Безопасный протокол передачи гипертекста (HTTPS) — защищает передачу данных между браузером пользователя и сайтом.
  • Протокол передачи файлов (FTP) — используется для передачи файлов между различными устройствами по сети.

Кроме того, некоторые протоколы URL-адресов используют ссылку mailto для идентификации адресов электронной почты или JDBC для указания доступа к базе данных в соответствии с требованиями пользователя.

Полномочия

Перед этим компонентом стоит двойная косая черта. Он содержит два подкомпонента — доменное имя и порт , ресурс, к которому вы обращаетесь. Доменное имя — это зарегистрированное имя ресурса, например hostinger.com или google.com .

Pro Tip

Если у вас есть хорошая идея для вашего доменного имени, не забудьте проверить ее доступность в инструменте поиска доменных имен.

Что касается порта, это конкретный номер, который определяет, какую веб-службу вы запрашиваете на веб-сервере. Например, номер порта для URL-адреса HTTP — 80, а для URL-адреса HTTPS — 443. Однако, если веб-сервер использует стандартный протокол, такой как HTTP или HTTPS, порт обычно не указывается в URL-адресе.

Путь

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

Однако не все URL-адреса отображают компонент пути. На многих современных веб-серверах вы можете не увидеть компонент пути, поскольку его можно опустить для сокращения URL-адресов. Некоторые примеры путей: …/software/htp/index.html или …/forum/question/.

Строка запроса

Эта строка предоставляет данные о ресурсе на веб-сервере, и ей предшествует вопросительный знак. Обычно он содержит пары ключ-значение, разделенные амперсандом. Например, ?tag=networking&order=newest.

В строке запроса хранятся данные, поскольку протокол HTTP не имеет состояния. Это означает, что каждый запрос независим и не связан с предыдущим запросом. В результате соединение между браузером и веб-сервером будет автоматически закрыто после завершения запроса клиента.

Кроме того, строка известна как параметры запроса URL, которые можно использовать для некоторых целей, например для результатов поиска веб-страницы. Это поможет пользователям просматривать контент с ресурса. Например, пользователи могут легко найти информацию о товарах в интернет-магазине.

Идентификаторы фрагментов

Идентификатор фрагмента или якорь обычно появляется в конце URL-адреса и начинается со знака решетки. Это необязательный компонент для направления веб-браузера на вторичный ресурс. Он относится к определенному разделу на веб-странице.

На HTML-странице браузер переходит к определенному разделу, помеченному фрагментом.

Например, если URL-адрес https://example.com/results.html#intro , он будет напрямую вести к тегу intro на странице с именем results.html .

Причины использования универсального идентификатора ресурса (URI)

Использование URI помогает создавать стандартные правила использования ресурса, включая доступ, обновление, поиск или загрузку. Он обеспечивает простой способ идентификации интернет-ресурсов.

Вот три варианта использования URI:

  • Аудиовизуальные произведения — ISAN — это серийный кодовый номер, используемый для идентификации аудиовизуальных произведений и версий, таких как фильмы, телевизионные программы или документальные фильмы. Используя схему urn:, URI может идентифицировать ISAN без протокола или способа доступа к нему. Например, urn:isan:0000-0000-2CEA-0000-1-0000-0000-Y , что относится к фильму «Человек-паук» 2002 года. Он идентифицирует ресурс с помощью аудиовизуального номера, не сообщая пользователю, где его найти.
  • Телефонные номера — URI может идентифицировать ресурс с помощью строки набора номера, которая имеет точку завершения сети (NTP), содержащую информацию, необходимую для маршрутизации вызова. Схема tel: представляет собой только глобальный уникальный идентификатор (GUID) и не относится к какому-либо физическому устройству. Например, тел:+1-816-555-6666 описывает GUID как стандартный номер телефона в США.
  • Удаленный доступ — Telnet — это сетевой протокол, в котором URI используют его для указания доступа к удаленному компьютеру или хосту через Интернет. Например, телнет://192.0.2.16:80/. Telnet обычно используется для удаленного тестирования или устранения неполадок веб-серверов или почтовых серверов.

Теперь давайте посмотрим, какие преимущества и недостатки имеет URI:

Плюсы :

  • Однозначный идентификатор — URI может предотвратить двусмысленность, предоставляя уникальные схемы для идентификации ресурсов и их дифференциации в семантической сети. Это помогает структуре описания ресурсов (RDF) интерпретировать информацию для пользователей. Таким образом, не будет путаницы между веб-документами и другими ресурсами.
  • Единообразие — URI идентифицирует имя и расположение ресурса. Кроме того, в одном и том же контексте могут использоваться различные типы идентификаторов ресурсов. Например, URL-адрес и URI могут ссылаться на один и тот же ресурс. Единообразие относится к общему синтаксису URI, которому следует следовать.
  • Идентификация абстрактных и физических ресурсов — схемы URI могут указывать любой ресурс, включая объекты реального мира, такие как номера телефонов, места, книги и люди. Ресурс не обязательно ограничен веб-страницами, доступными через Интернет.
  • Несколько URI могут быть связаны с одним ресурсом — например, данные по http://www.example.com/abc/2022/Q1 также могут быть доступны по адресу http://www.example.com /abc/Q12022 . Это облегчит клиент-серверу обращение к ресурсу.

Минусы :

  • URI должны быть постоянными — после того, как вы создали URI, его изменение может повредить репутации вашего сайта. Даже если вы все еще можете перекодировать неработающие URL-адреса, это требует времени и усилий.
  • Несовместимо со всеми браузерами — хотя URI можно использовать во многих популярных браузерах, таких как Google Chrome и Mozilla Firefox, некоторые старые версии браузеров, такие как Internet Explorer 5,6,7 или Safari 5 и 6, не поддерживаются Схема URI.

Причины использования унифицированного указателя ресурсов (URL)

Как и URI, URL-адрес используется для идентификации ресурса. Оба имеют тонкие различия с точки зрения их назначения и структуры. Имейте в виду, что большинство URL-адресов предоставляют протокол. Вот несколько вариантов использования URL:

  • Ссылка на адрес электронной почты — URL-адрес может указывать адрес электронной почты с использованием схемы mailto: . Он предоставляет гиперссылку для отправки электронной почты непосредственно со страницы HTML. Например, mailto:[email protected].
  • Получение веб-страниц — наиболее распространенные URL-адреса относятся к веб-адресу. Он содержит протокол, доменное имя и путь. Он также известен как абсолютный URL. Например, https://www.example.com/news/business/ сообщает вам адрес и каталог ресурса.
  • Перенаправление ресурса — вы можете использовать URL-адрес для перенаправления старого ресурса в новое место. Обычно используется для перемещения веб-страницы. Например, если вы изменили адрес своего веб-сайта с https://www.blog.example.com на https://www.example.com/blog , вы можете реализовать переадресацию 301. Это предотвратит получение посетителями различных кодов состояния HTTP, таких как страница с ошибкой 404.
  • Ссылка на внутреннюю страницу — URL-адреса могут отображаться без протокола и имени домена, но указывает только путь. Он используется для ссылки на определенный файл в том же домене, который можно назвать относительным URL-адресом. Например, если URL-адрес https://www.example.com/news/business/, относительный URL-адрес будет /news/business /.

Каждый URL-адрес состоит из нескольких компонентов, которые влияют на безопасность вашего сайта и поисковую оптимизацию (SEO). Узнаем о его плюсах и минусах.

Pros :

  • Расширение возможностей пользователей — хорошо структурированный URL-адрес поможет пользователям понять, к какой странице они обращаются. Например, если на веб-странице веб-сайта www.example.com есть тег заголовка «Рецепт шоколадного пудинга к Рождеству», ваш URL-адрес может быть http://example.com/recipes/chocolate-pudding для описания страницы. содержание четко.
  • Повышение рейтинга сайта . Помимо авторитета домена, ключевые слова в URL-адресах играют роль второстепенного фактора ранжирования вашего сайта. Это может повлиять на страницы результатов поисковой системы (SERP) при анализе конкретной страницы или релевантности ресурса.
  • Защитите свой сайт — использование URL-адресов HTTPS может защитить ваш сайт и конфиденциальность посетителей более надежно, чем HTTP. Это связано с тем, что HTTPS поставляется с сертификатом Secure Sockets Layer (SSL), который обеспечивает зашифрованное соединение между веб-сервером и веб-браузером для передачи данных.

Минусы :

  • Угроза безопасности — создание сокращенного URL-адреса также может поставить под угрозу репутацию вашего сайта. Многие хакеры используют сокращатели URL-адресов, такие как Bitly, owl.ly, AdF.ly и TinyURL, чтобы скрыть свои злонамеренные намерения от пользователей. Пример сокращенного URL: 9.0407 http://bitly.is/example , где не видно домена сайта.
  • Кража контента — использование относительных URL-адресов может быть рискованным для кражи контента, поскольку людям не нужно переписывать какие-либо внутренние ссылки. Они могут легко скопировать вашу страницу и разместить ее на новом домене с помощью парсера.
  • Мертвая ссылка — это может произойти, когда вы используете службу сокращения URL-адресов. Это связано с тем, что служба может выйти из строя или даже прекратить работу, в результате чего ваша ссылка не будет работать.
Pro Tip

Хорошие URL-адреса должны быть простыми, четкими и краткими. Таким образом, пользователи могут получить представление о том, чего ожидать на странице.

Заключение

Понимание различий между URI и URL и их использованием важно для каждого веб-мастера. Например, создание REST API с использованием предсказуемой и иерархической структуры URI или URL-адреса может повысить производительность REST API.

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

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

Мы надеемся, что эта статья помогла вам понять разницу между URI и URL и когда их использовать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *