- Регистрация
- 1 Мар 2015
- Сообщения
- 5,029
- Баллы
- 155
HTTP (HyperText Transfer Protocol) - Протокол Передачи ГиперТекста. Сервер HTTP работает на 80 порту. Некоторые админы обычно меняют этот порт на какой-либо нестандартный с известной им одним целью.
Запросы клиента разбиваются на три раздела. Первая строка сообщения всегда содержит: Метод URL версия_протокола
Метод может принимать следущие значения:
GET - запрос документа. Наиболее часто употребляемый метод.
HEAD - запрос заголовка документа. Сам документ не выдается.
POST - этот метод применяется для передачи данных CGI-скриптам. Сами данные
следуют в последующих строках запроса в виде параметров.
PUT - разместить документ на сервере. Запрос с этим методом имеет тело, в
котором передается сам документ.
LINK - Связывает информацию заголовка с документом на сервере.
UNLINK - Отменяет связь информации заголовка с документом на сервере.
DELETE Удаляет данные, находящиеся на сервере по заданному URI.
OPTIONS Запрашивает информацию о коммуникационных параметрах сервера. Чтобы
запросить данные обо всем сервере в целом, вместо URI запроса следует
использовать символ *.
TRACE Требует, чтобы тело содержимого запроса было возвращено без изменений.
Используется для отладки.
Следующие строки запроса клиента содержат информацию заголовка. Информация заголовка содержит сведения о клиенте. Эти данные обрабатываются различными скриптами сервера, чтобы сформировать страницу специфичную для клиента.
Вот некоторые из параметров заголовка:
Connection (соединение)- может принимать значения Keep-Alive и close.
Keep-Alive ("оставить в живых") означает, что после выдачи данного документа
соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство
браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно
соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды
установленным, режим Keep-Alive сохраняется до первой ошибки или до явного
указания в очередном запросе Connection: close.
close ("закрыть") - соединение закрывается после ответа на данный запрос.
Если Connection не указано то используется close.
User-Agent - значением является "кодовое обозначение" браузера, например:
Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)
Accept - список поддерживаемых браузером типов содержимого в порядке их
предпочтения данным браузером, например:
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Referer - URL, с которого перешли на этот ресурс.
Host - имя хоста, с которого запрашивается ресурс. Используется, если на сервере
имеется несколько виртуальных серверов под одним IP-адресом. В этом случае имя
виртуального сервера определяется по этому полю.
Accept-Language - поддерживаемый язык. Имеет значение для сервера, который может
выдавать один и тот же документ в разных языковых версиях.
Третья часть клиентского запроса представляет собой тело содержимого - собственно данные, посылаемые серверу.
Например:
GET /index.html HTTP/1.О
Connection: Keep-Alive
User-Agent: Mozilla/4.05 (WinNT; 1)
Host:
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
В данном примере методом GET запрашивается документ index.html по протоколу HTTP 1.0. Третья часть в данном примере отсутствует, т.к. запрашиваемая страница не принимает какие-либо данные.
Еще пример:
POST /cgi-bin/birthday.pl HTTP/1.0
User-Agent; Mozilla/4.05 (WinNT; 1)
Accept: image/gif, iinage/x-xbj.tmap, image/jpeg, J.mage/pjpeg, */*
Host:
Content-type: application/x-www-form-ur.lencoded
Content-Length: 20
nionth=august&date=24
Тут все тоже самое за исключением того что теперь мы кроме заголовка передаем методом POST скрипту /cgi-bin/birthday.pl два параметра nionth=august и date=24
Ответ сервера очень похож на запрос. Он тоже состоит из трех частей:
Первая строка - это строка ответа сервера Она содержит номер версии HTTP; код ошибки; и краткое описание кода ошибки. В случае успешного завершения код ошибки равен 200 а описание - "ОК"
Вторая часть - информация заголовка
Она может иметь следующие значения:
Connection - тоже что и при запросе. По этому значению можно судить установленно
ли еще соединение или разорвано.
Content-Type - тип содержимого может иметь следущее значение:
text/html - текст в формате HTML (веб-страница);
text/plain - простой текст (аналогичен "блокнотовскому");
image/jpeg - картинка в формате JPEG;
image/gif - то же, в формате GIF;
application/octet-stream - поток "октетов"(т.е. просто байт) для записи на диск.
Это далеко не полный список.
Content-Length - длина содержимого ответа в байтах.
Last-Modified - дата последнего изменения документа.
Третья часть - тело содержимого если оно конечно присутствует.
Ну вот и фсе. Сдесь приведено далеко не полное описание протокола, но основные принципы прочитав эту статью ты усвоить сможешь.
Запросы клиента разбиваются на три раздела. Первая строка сообщения всегда содержит: Метод URL версия_протокола
Метод может принимать следущие значения:
GET - запрос документа. Наиболее часто употребляемый метод.
HEAD - запрос заголовка документа. Сам документ не выдается.
POST - этот метод применяется для передачи данных CGI-скриптам. Сами данные
следуют в последующих строках запроса в виде параметров.
PUT - разместить документ на сервере. Запрос с этим методом имеет тело, в
котором передается сам документ.
LINK - Связывает информацию заголовка с документом на сервере.
UNLINK - Отменяет связь информации заголовка с документом на сервере.
DELETE Удаляет данные, находящиеся на сервере по заданному URI.
OPTIONS Запрашивает информацию о коммуникационных параметрах сервера. Чтобы
запросить данные обо всем сервере в целом, вместо URI запроса следует
использовать символ *.
TRACE Требует, чтобы тело содержимого запроса было возвращено без изменений.
Используется для отладки.
Следующие строки запроса клиента содержат информацию заголовка. Информация заголовка содержит сведения о клиенте. Эти данные обрабатываются различными скриптами сервера, чтобы сформировать страницу специфичную для клиента.
Вот некоторые из параметров заголовка:
Connection (соединение)- может принимать значения Keep-Alive и close.
Keep-Alive ("оставить в живых") означает, что после выдачи данного документа
соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство
браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно
соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды
установленным, режим Keep-Alive сохраняется до первой ошибки или до явного
указания в очередном запросе Connection: close.
close ("закрыть") - соединение закрывается после ответа на данный запрос.
Если Connection не указано то используется close.
User-Agent - значением является "кодовое обозначение" браузера, например:
Mozilla/4.0 (compatible; MSIE 5.0; Windows 95; DigExt)
Accept - список поддерживаемых браузером типов содержимого в порядке их
предпочтения данным браузером, например:
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Referer - URL, с которого перешли на этот ресурс.
Host - имя хоста, с которого запрашивается ресурс. Используется, если на сервере
имеется несколько виртуальных серверов под одним IP-адресом. В этом случае имя
виртуального сервера определяется по этому полю.
Accept-Language - поддерживаемый язык. Имеет значение для сервера, который может
выдавать один и тот же документ в разных языковых версиях.
Третья часть клиентского запроса представляет собой тело содержимого - собственно данные, посылаемые серверу.
Например:
GET /index.html HTTP/1.О
Connection: Keep-Alive
User-Agent: Mozilla/4.05 (WinNT; 1)
Host:
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
В данном примере методом GET запрашивается документ index.html по протоколу HTTP 1.0. Третья часть в данном примере отсутствует, т.к. запрашиваемая страница не принимает какие-либо данные.
Еще пример:
POST /cgi-bin/birthday.pl HTTP/1.0
User-Agent; Mozilla/4.05 (WinNT; 1)
Accept: image/gif, iinage/x-xbj.tmap, image/jpeg, J.mage/pjpeg, */*
Host:
Content-type: application/x-www-form-ur.lencoded
Content-Length: 20
nionth=august&date=24
Тут все тоже самое за исключением того что теперь мы кроме заголовка передаем методом POST скрипту /cgi-bin/birthday.pl два параметра nionth=august и date=24
Ответ сервера очень похож на запрос. Он тоже состоит из трех частей:
Первая строка - это строка ответа сервера Она содержит номер версии HTTP; код ошибки; и краткое описание кода ошибки. В случае успешного завершения код ошибки равен 200 а описание - "ОК"
Вторая часть - информация заголовка
Она может иметь следующие значения:
Connection - тоже что и при запросе. По этому значению можно судить установленно
ли еще соединение или разорвано.
Content-Type - тип содержимого может иметь следущее значение:
text/html - текст в формате HTML (веб-страница);
text/plain - простой текст (аналогичен "блокнотовскому");
image/jpeg - картинка в формате JPEG;
image/gif - то же, в формате GIF;
application/octet-stream - поток "октетов"(т.е. просто байт) для записи на диск.
Это далеко не полный список.
Content-Length - длина содержимого ответа в байтах.
Last-Modified - дата последнего изменения документа.
Третья часть - тело содержимого если оно конечно присутствует.
Ну вот и фсе. Сдесь приведено далеко не полное описание протокола, но основные принципы прочитав эту статью ты усвоить сможешь.