Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Особенность HTTP - HTTP не имеет состояния, но имеет сессию
В отличие от многих других протоколов, HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ». Компоненты, использующие HTTP, могут самостоятельно осуществлять сохранение информации о состоянии, связанной с последними запросами и ответами (например, «куки» на стороне клиента, «сессии» на стороне сервера). Браузер, посылающий запросы, может отслеживать задержки ответов. Сервер может хранить IP-адреса и заголовки запросов последних клиентов. Однако сам протокол не осведомлён о предыдущих запросах и ответах, в нём не предусмотрена внутренняя поддержка состояния, к нему не предъявляются такие требования. Простыми словами, не существует связи между двумя запросами, которые последовательно выполняются по одному соединению. Но хотя ядро HTTP не имеет состояния, куки позволяют использовать сессии с сохранением состояния. Используя расширяемость заголовков, куки добавляются к рабочему потоку, позволяя сессии на каждом HTTP-запросе делиться некоторым контекстом, или состоянием. ЗАПРОСЫ И ОТВЕТЫ: ИХ СТРУКТУРА, ФОРМИРОВАНИЕ И МЕТОДЫ Существует два типа HTTP сообщений, запросы и ответы, каждый в своем формате. HTTP запросы и ответы формируются в строгой последовательности и соответствуют определенной структуре. Они имеют близкую структуру и состоят из следующих элементов:
Тело сообщения может отсутствовать, но стартовая строка и заголовок являются обязательными элементами. Стартовую строку вместе с заголовками сообщения HTTP называют головой запроса, а его данные - телом.
HTTP- запросы (Requests) Каждое HTTP-запрос состоит:
· Метод HTTP - это метод, который сообщает, какой метод HTTP используется. Чаще всего используется метод GET. Метод GET извлекает ресурс с веб-сервера, и поскольку у GET нет тела сообщения, после заголовка ничего не требуется. (О методах HTTP подробней ниже) · Цель запроса, обычно URL, или абсолютный путь протокола, порт и домен обычно характеризуются контекстом запроса. · Версия HTTP - используемая версия HTTP. Версия 1.1. является наиболее распространенной для большинства браузеров, однако, версия 2.0 становится популярнее.
Эти значения могут быть самыми разными, но наиболее распространенными являются: Host - содержит имя сайта, наличие такого заголовка позволяет хостить несколько сайтов на одном IP адресе) User-Agent - дополнительная информация об используемом браузере, который по задумке должен обозначать вид используемого браузера, а на практике сложным образом описывает список поддерживаемых браузером технологий. Accept - определяет формат данных в ответе, который нужен клиенту Connection – «close» означает, что клиент хочет закрыть TCP соединение сразу после получения ответа от сервера.
Если запрос сформирован правильно, и сервер функционирует нормально, и сеть в порядке то в ответ на HTTP пакет от клиента придёт ответ, который выглядит примерно вот так: HTTP- ответы (Responses) Структура HTTP ответа:
Стартовая строка ответа HTTP, называемая строкой статуса, содержит следующую информацию: · Версию протокола, обычно HTTP/1.1. · Код состояния (status code), показывающая, был ли запрос успешным. Примеры: 200, 404 или 302 · Пояснение (status text). Краткое текстовое описание кода состояния, помогающее пользователю понять сообщение HTTP. Пример строки статуса: HTTP/1.1 404 Not Found.
Имеют ту же структуру, что и все остальные заголовки: не зависящая от регистра строка, завершаемая двоеточием (':') и значение, структура которого определяется типом заголовка.
Опционально, содержит пересылаемый ресурс. Методы HTTP запроса Для того, чтобы указать серверу на то, какое действие мы хотим произвести с ресурсом, используется тип HTTP-запроса, который также называется HTTP метод. HTTP метод указывает, какое желаемое действие выполнится для данного ресурса, и представляет собой последовательность из любых символов, кроме управляющих и разделителей. Обратите внимание, что название метода чувствительно к регистру. Метод HTTP (method) – это чащеглагол (например, GET, PUT или POST), но может быть и существительное (например, HEAD или OPTIONS), описывающие требуемое действие. Эти методы запроса иногда в англоязычной терминологии называются HTTP глаголами (verb). Существует несколько HTTP методов, которые описывают действия с ресурсами, но наиболее распространёнными методами являются GET и POST. Каждый сервер обязан поддерживать как минимум методы GET и HEAD. GET Метод GET запрашивает информацию из указанного источника и не влияет на его содержимое.
/login-check.php?argument1=value1&argument2=value2
С помощью метода GET можно также начать какой-либо процесс. В этом случае в тело ответного сообщения следует включить информацию о ходе выполнения процесса. Согласно стандарту HTTP, запросы типа GET считаются идемпотентными. Идемпотентность— свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при первом. Метод HTTP является идемпотентным, если повторный идентичный запрос, сделанный один или несколько раз подряд, имеет один и тот же эффект, не изменяющий состояние сервера. Кроме обычного метода GET, различают ещё: · Условный GET — содержит заголовки If-Modified-Since, If-Match, If-Range и подобные; · Частичный GET — содержит в запросе Range. Порядок выполнения подобных запросов определён стандартами отдельно. POST Предназначен для передачи необработанных данных на сервер (для обработки и хранения)
Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер. В отличие от метода GET, метод POST не считается идемпотентным, то есть многократное повторение одних и тех же запросов POST может возвращать разные результаты (например, после каждой отправки комментария будет появляться очередная копия этого комментария). В результате выполнения 200 (Ok) в тело ответа следует включить сообщение об итоге выполнения запроса. Если был создан ресурс, то серверу следует вернуть ответ 201 (Created) с указанием URI нового ресурса в заголовке Location. Сообщение ответа сервера на выполнение метода POST не кэшируется.
|
||||||
Последнее изменение этой страницы: 2021-11-27; просмотров: 80; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.196.182 (0.007 с.) |