Протокол HTTP. HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) – это протокол прикладного уровня
HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) – это протокол прикладного уровня, разработанный для обмена гипертекстовой информацией в Internet.HTTP предоставляет набор методов для указания способа передачи запроса серверу.
HTTP используется для коммуникаций между различными пользовательскими программами и программами-шлюзами, предоставляющими доступ к существующим Internet-протоколам, таким как SMTP (протокол электронной почты), NNTP (протокол передачи новостей), FTP (протокол передачи файлов), Gopher и WAIS. HTTP разработан для того, чтобы позволять таким шлюзам через промежуточные программы-серверы (proxy) передавать данные без потерь.
Всякая связь между клиентом и сервером осуществляется посредством сообщений. HTTP различает только два вида сообщений — сообщения-запросы и сообщения-ответы. Как показано на рис. 11.5, а, сообщения-запросы состоят из трех частей. Строка запроса (request line) имеет стандартный вид и определяет операцию, которую клиент хочет выполнить на сервере, а также ссылку на документ, связанный с запросом. Отдельное поле требуется для указания версии HTTP, которую использует клиент. В качестве операций(методов) могут быть указаны GET, POST, HEAD, PUT, DELETE и другие. В качестве ссылки чаще всего используется URL-адрес ресурса.
Ответное сообщение начинается строкой состояния (status line), содержащей номер версии и код состояния из трех цифр, как показано на рис. 11.5, б. Код кратко поясняется текстовой фразой, которая также является частью строки состояния. Так, например, код состояния 200 указывает на то, что запрос был обработан и имеет ассоциированную с ним фразу «ОК». Вот другие часто используемые коды:
400 (Bad Request)
403 (Forbidden)
404 (Not Found)
Сообщения с запросами или ответами могут содержать дополнительные заголовки. Так, например, если клиент отправляет запрос на операцию post с документом, предназначенным только для чтения, сервер отвечает сообщением с кодом состояния 405 (Method Not Allowed) и заголовком сообщения Allow, определяющим допустимые операции (например, head и get). Другой пример: клиент может поинтересоваться, не изменялся ли документ с определенного момента времени Т. В этом случае клиент отправляет запрос get, дополненный заголовком сообщения If-Modified-Sincе с определенным значением Т.
Методы
Любой запрос клиента к серверу должен начинаться с указания метода. Метод сообщает о цели запроса клиента. Протокол HTTP поддерживает достаточно много методов, но в основном используются только три: POST, GET и HEAD. Метод GET позволяет получить любые данные, идентифицированные с помощью URI в запросе ресурса. Если URI указывает на программу, то возвращается результат работы программы, а не ее текст. Дополнительная информация, необходимая для обработки запроса, встраивается в сам запрос (в строку статуса). При использовании метода GET в поле тела ресурса возвращается собственно затребованная информация.
Метод HEAD используют для получения информации о ресурсе.
Метод POST разработан для передачи на сервер такой информации, как новостные и почтовые сообщения, данные для добавления в базу данных, т.е. для передачи информации большого объема и достаточно важной. В отличие от методов GET и HEAD, в POST передается тело ресурса, которое и является информацией, получаемой из полей форм или других источников ввода.
Дата добавления: 2015-08-26; просмотров: 1145;