После авторизации Вы получите доступ к файлам, скрытым материалам сайта, исходным кодам
возможность комментировать и т.д.

Вы можете авторизоваться на сайте всего одним кликом:

2016-07-10
HTTP → Заголовки HTTP
Как работает интернет, Как работают интернет-протоколы

В этом уроке я более подробно расскажу о HTTP-Заголовках

Заголовки HTTP

Заголовки HTTP (HTTP Headers) — это строки в HTTP-сообщении, содержащие разделенную двоеточием пару "параметр: значение". Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой.

Server: Apache/2.2.11 (Win32) PHP/5.3.0
Last-Modified: Sat, 16 Jan 2010 21:16:42 GMT
Content-Type: text/plain; charset=windows-1251
Content-Language: ru

В приведенном примере каждая строка представляет собой один заголовок. При этом то, что находится до первого двоеточия, называется именем (name), а что после нее — значением (value).

Все заголовки разделяются на четыре основных группы:

  1. General Headers (Основные заголовки) — должны включаться в любое сообщение клиента и сервера;
  2. Request Headers (Заголовки запроса) — используются только в запросах клиента;
  3. Response Headers (Заголовки ответа) — только для ответов от сервера;
  4. Entity Headers (Заголовки сущности) — сопровождают каждую сущность сообщения.

Именно в таком порядке рекомендуется посылать заголовки получателю. Заголовки запроса и ответа, как и основные заголовки, описывают все сообщение в целом и размещаются только в начальном блоке заголовков, в то время как заголовки сущности характеризуют содержимое каждой части в отдельности, располагаясь непосредственно перед ее телом.

Мы не будем углубляться в изучение форматов HTTP-сообщений. На данном этапе достаточно иметь общее представление о функционировании механизмов, обеспечивающих клиент-серверное взаимодействие между браузерами и веб-серверами. Дополнительную информацию о HTTP-заголовках вы сможете найти в Википедии: https://ru.wikipedia.org/wiki/Заголовки_HTTP

Как посмотреть данные HTTP-запроса и HTTP-ответа в браузере

Давайте подробнее рассмотрим содержимое пакетов, которыми обмениваются браузер и веб-сервер. Для этого нам понадобится лишь нажать F12 в любом современном браузере (я буду использовать FireFox):

На вкладке Inspector вы сможете увидеть HTML-код загруженной страницы. Обратите внимание, Вы можете скрывать и раскрывать содержание отдельных элементов, из которых состоит HTML-страница.

Но нас в данный момент больше интересует содержание всего HTTP-пакета, нежели его HTML-составляющей. Чтобы увидеть непосредственное содержимое HTTP- запросов и ответов перейдем на вкладку Network и обновим страницу.

Теперь мы видим список запросов, которые совершил наш браузер. Обратите внимание, что инициатором взаимодействия между браузером и веб-сервером всегда является именно браузер. Веб-сервер же просто формирует ответы на запросы браузеров клиентов. Также обратите внимание: несмотря на то, что мы запросили всего одну веб-страницу, браузер выполнил несколько HTTP-запросов. Это связано с тем, что некоторые элементы страницы, такие как картинки, таблицы стилей (css), JavaScript-файлы, подгружаются в отдельных запросах. Иногда для загрузки одной веб-страницы браузер выполняет более сотни запросов.

Если раскрыть любой из пунктов, щелкнув по нему, мы увидим данные соответствующего HTTP-запроса. Они поделены на четыре категории: Параметры, Заголовки, Ответ, Кэш. Параметры у запроса могут отсутствовать, поэтому одноименной вкладки вы можете не увидеть. На закладке Заголовки представлены HTTP-заголовки запроса браузера и ответа сервера. Вкладка Ответ содержит HTML-код, полученный браузером от сервера. А на вкладке Кэш можно найти служебную информацию по кэшированию страницы.

Самостоятельно откройте несколько интернет-страниц и просмотрите отправленные и полученные данные. Скорее всего, большинство из них вам сейчас незнакомо, однако в этом нет ничего страшного. На данном этапе достаточно просто понимать, что происходит в процессе информационного обмена между браузером и веб- сервером.

903
0
Пожалуйста, авторизируйтесь, чтобы скачать архив с файлами урока