• Приветствую тебя уважаемый гость на форуме, посвященный компьютерам! В дружелюбной обстановке у вас будет возможность обсудить различные технические вопросы, касаемых: компьютеров, ноутбуков, программ для ПК. Обратите внимание, компьютерный форум Hard-Help.ru не коммерческий ресурс, то есть наши модераторы ничего не продают и не хвалят разные товары за деньги. Если это ваш первый визит, рекомендуем почитать справку по форуму. Для создания тем и размещения сообщений необходимо зарегистрироваться. После регистрации и успешной авторизации в темах не будет видна реклама от компании Google, а также появятся дополнительные функции. Желаем Вам приятного общения и новых друзей!

Описание протокола HTTP

Регистрация
16 Фев 2011
Сообщения
47
Репутация
0
Баллы
6
HTTP (HyperText Transfer Protocol - протокол передачи гипертекста) был разработан как основа World Wide Web. <br><br>Работа по протоколу HTTP происходит следующим образом: программа-клиент устанавливает TCP-соединение с сервером (стандартный номер порта-80) и выдает ему HTTP-запрос. Сервер обрабатывает этот запрос и выдает HTTP-ответ клиенту. <br><br>Структура HTTP-запроса <br><br>HTTP-запрос состоит из заголовка запроса и тела запроса, разделенных пустой строкой. Тело запроса может отсутствовать. <br><br>Заголовок запроса состоит из главной (первой) строки запроса и последующих строк, уточняющих запрос в главной строке. Последующие строки также могут отсутствовать. <br><br>Запрос в главной строке состоит из трех частей, разделенных пробелами: <br><br>Метод (иначе говоря, команда HTTP): <br><br>GET - запрос документа. Наиболее часто употребляемый метод; в HTTP/0.9, говорят, он был единственным. <br><br>HEAD - запрос заголовка документа. Отличается от GET тем, что выдается только заголовок запроса с информацией о документе. Сам документ не выдается. <br><br>POST - этот метод применяется для передачи данных CGI-скриптам. Сами данные следуют в последующих строках запроса в виде параметров. <br><br>PUT - разместить документ на сервере. Насколько я знаю, используется редко. Запрос с этим методом имеет тело, в котором передается сам документ. <br><br>Ресурс - это путь к определенному файлу на сервере, который клиент хочет получить (или разместить - для метода PUT). Если ресурс - просто какой-либо файл для считывания, сервер должен по этому запросу выдать его в теле ответа. Если же это путь к какому-либо CGI-скрипту, то сервер запускает скрипт и возвращает результат его выполнения. Кстати, благодаря такой унификации ресурсов для клиента практически безразлично, что он представляет собой на сервере. <br><br>Версия протокола - версия протокола HTTP, с которой работает клиентская программа. <br><br>Таким образом, простейший HTTP-запрос может выглядеть следующим образом: <br><br>GET / HTTP/1.0 <br><br>Здесь запрашивается корневой файл из корневой директории web-сервера. <br><br>Строки после главной строки запроса имеют следующий формат: <br><br>Параметр: значениe. <br><br>Таким образом задаются параметры запроса. Это является необязательным, все строки после главной строки запроса могут отсутствовать; в этом случае сервер принимает их значение по умолчанию или по результатам предыдущего запроса (при работе в режиме Keep-Alive). <br><br>Перечислю некоторые наиболее употребительные параметры HTTP-запроса:
 
Connection (соединение)- может принимать значения Keep-Alive и close. Keep-Alive ("оставить в живых") означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды установленным, режим Keep-Alive сохраняется до первой ошибки или до явного указания в очередном запросе Connection: close. <br>close ("закрыть") - соединение закрывается после ответа на данный запрос. <br><br>User-Agent - значением является "кодовое обозначение" браузера, например: <br><br>Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt) <br><br>Accept - список поддерживаемых браузером типов содержимого в порядке их предпочтения данным браузером, например для моего IE5: <br><br>Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */* <br><br>Это, очевидно, нужно для случая, когда сервер может выдавать один и тот же документ в разных форматах. <br><br>Значение этого параметра используется в основном CGI-скриптами для формирования ответа, адаптированного для данного браузера. <br><br>Referer - URL, с которого перешли на этот ресурс. <br><br>Host - имя хоста, с которого запрашивается ресурс. Полезно, если на сервере имеется несколько виртуальных серверов под одним IP-адресом. В этом случае имя виртуального сервера определяется по этому полю. <br><br>Accept-Language - поддерживаемый язык. Имеет значение для сервера, который может выдавать один и тот же документ в разных языковых версиях. <br><br>Формат HTTP-ответа <br><br>Формат ответа очень похож на формат запроса: он также имеет заголовок и тело, разделенное пустой строкой. <br><br>Заголовок также состоит из основной строки и строк параметров, но формат основной строки отличается от таковой в заголовке запроса. <br><br>Основная строка запроса состоит из 3-х полей, разделенных пробелами: <br><br>Версия протокола - аналогичен соответствующему параметру запроса. <br><br>Код ошибки - кодовое обозначение "успешности" выполнения запроса. Код 200 означает "все нормально" (OK). <br><br>Словесное описание ошибки - "расшифровка" предыдущего кода. Например для 200 это OK, для 500 - Internal Server Error. <br><br>Наиболее употребительные параметры http-ответа: <br><br>Connection - аналогичен соответствующему параметру запроса. <br>Если сервер не поддерживает Keep-Alive (есть и такие), то значение Connection в ответе всегда close. <br><br>Поэтому, на мой взгляд, правильной тактикой браузера является следующая: <br>1. выдать в запросе Connection: Keep-Alive; <br>2. о состоянии соединения судить по полю Connection в ответе. <br><br>Content-Type ("тип содержимого") - содержит обозначение типа содержимого ответа. <br><br>В зависимости от значения Content-Type браузер воспринимает ответ как HTML-страницу, картинку gif или jpeg, как файл, который надо сохранить на диске, или как что-либо еще и предпринимает соответствующие действия. Значение Content-Type для браузера аналогично значению расширения файла для Windows. <br><br>Некоторые типы содержимого: <br><br>text/html - текст в формате HTML (веб-страница); <br>text/plain - простой текст (аналогичен "блокнотовскому"); <br>image/jpeg - картинка в формате JPEG; <br>image/gif - то же, в формате GIF; <br>application/octet-stream - поток "октетов" (т.е. просто байт) для записи на диск. <br><br>На самом деле типов содержимого гораздо больше. <br><br>Content-Length ("длина содержимого") - длина содержимого ответа в байтах. <br><br>Last-Modified ("Модифицирован в последний раз") - дата последнего изменения документа.
 

Похожие темы

S
Ответы
0
Просмотры
646
salatypost
S
S
Ответы
0
Просмотры
3K
studybayws
S
S
Ответы
1
Просмотры
664
AlexSmorge
A
Сверху