Заголовки HTTP-сообщений

Каждое поле заголовка сообщения запроса клиента или ответа сервера (заголовок, напомню, должен помещаться сразу же за начальной строкой) имеет следующий формат: имя_поля: значение.
Различают четыре категории заголовочных полей.
Общие поля заголовков используются как в сообщениях запроса клиента, так и в сообщениях ответа сервера, но они не описывают свойств передаваемых объектов.
Поля заголовков запроса применяются только в сообщениях запроса клиента. Они позволяют клиенту передавать серверу сведения о себе, информацию о предпочтительных форматах принимаемых объектов, данные для авторизации и т. д.
Поля заголовков ответа используются только в сообщениях ответа сервера. Они могут содержать информацию о самом сервере, а также об условиях доступа к тому или иному ресурсу.
Поля заголовков содержимого предназначены для передачи информации об объектах, пересылаемых между клиентом и сервером. Такие поля могут фигурировать как в сообщениях запроса клиента, так и в сообщениях ответа сервера.
Спецификацией HTTP 1.1 предопределяются имена:
9 общих полей (Cache-Control, Connection, Date, Pragma, Trailer, Transfer-Encoding, Upgrade, Via, Warning);
19 полей заголовков запроса (Accept, Accept-Charset, Accept-Encoding, Accept-Language, Authorization, Expect, From, Host, If-Match, If-Modified-Since, If-None-Match, If-Range, If-Unmodified-Since, Max-Forwards, Proxy-Authorization, Range, Referer, TE, User-Agent);
9 полей заголовков ответа (Accept-Ranges, Age, ETag, Location, Proxy-Authenticate, Retry-After, Server, Vary, WWW-Authenticate);
10 полей заголовков содержимого (Allow, Content-Encoding, Content-Language, Content-Length, Content-Location, Content-MD5, Content-Range, Content-Type, Expires, Last-Modified).
Замысел этой книги далек от концепции исчерпывающего справочника или сборника переводов спецификаций протоколов и языков программирования, поэтому детальное обсуждение назначения и нюансов использования каждого из перечисленных выше полей заголовков не входит в наши планы.
Приводя здесь полный список определенных спецификацией HTTP 1.1 имен заголовочных полей, я хочу лишь наглядно проиллюстрировать тезис о том, что смысл большинства из них сразу же, без необходимости заглядывать в справочник, понятен любому человеку, знакомому с английским языком.
Так, например, значением поля Date («дата») выступает дата и время отправки сообщения запроса или ответа; содержимое поля Accept («принимаю», «допускаю») информирует сервер о том, какие типы содержимого готов принимать клиент; в поле Server («сервер») веб-сервер передает клиенту информацию о себе; в поле Content-Length («длина содержимого») указывается размер передаваемого объекта в байтах; и т. д.
Помимо явно предопределенных той или иной спецификацией протокола HTTP имен заголовочных полей, клиенты и серверы могут использовать расширенные, т. е. не описанные спецификациями имена. Некоторым полезным расширениям мы еще успеем уделить внимание.
Изучать заголовки, которыми обмениваются между собой клиент и сервер, взаимодействуя по протоколу HTTP, гораздо интереснее не по справочникам, а вживую, на практике.

Здесь, однако, есть один существенный нюанс. Обсуждаемый анализатор (равно как и все подобные ему инструменты) никоим образом не может перехватить реальный диалог вашего браузера с сервером, обслуживающим исследуемый сайт.
Поэтому анализатор самостоятельно формирует HTTP-запрос к исследуемому серверу, и вы сможете просмотреть заголовок ответа сервера именно на этот, отправленный анализатором, запрос. Реакцию исследуемого сервера на «настоящий» запрос, порожденный вашим браузером, анализатор показать не в состоянии.
Ровно по той же самой причине вы не сможете увидеть на странице отчета, сгенерированного анализатором, реальный заголовок HTTP-запроса, который бы отправил ваш браузер исследуемому серверу. Анализатор покажет вам только заголовок того запроса, который был направлен вашим браузером серверу, обслуживающему сам анализатор.
Тем, кто зарабатывает себе на хлеб поисковой оптимизацией, т. е. укреплением позиций сайтов в выдаче поисковых систем, вероятно, вполне достаточно возможностей подобных сервисов. Однако для изучения HTTP-транзакций в действии такие анализаторы, скажем прямо, малопригодны.
Будет гораздо лучше, если вы воспользуетесь каким-либо специализированным программным средством, устанавливаемым на локальную машину клиента и тесно взаимодействующим с браузером. Если вы применяете браузер Mozilla Firefox, наиболее удобным вариантом для вас, возможно, окажется установка расширения LiveHTTPHeaders (livehttpheaders.mozdev.org) или аналогичного ему.
После установки этого расширения окно Информация о странице (вызываемое из меню Инструменты либо из контекстного меню) браузера Mozilla Firefox дополняется закладкой Headers («заголовки»).


© 2008-2018 ОптимизацияВебСайтов.ру


Любое использование текстового и графического контента сайта без активной ссылки на источник не доскается.