Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 145; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.007 с.) |