Тема 10: Справочник полей HTTP заголовков. Список полей HTTP заголовка. Заголовки HTTP сообщений: запросов и ответов

Привет, читатель блога ZametkiNaPolyah.ru! Продолжим знакомиться с протоколом HTTP в рубрике Серверы и протоколы и ее разделе HTTP протокол. В данной публикации вы найдете все поля HTTP заголовков их описание и небольшие примеры. Возможно, в этой рубрике появится более подробные публикации про каждую из групп полей заголовка, пока я советую обратиться вам к официальной документации стандарта HTTP 1.1.


Поля HTTP заголовков запроса пользователя

Ниже приведены поля HTTP заголовка запроса пользователя, это те поля, которые могут быть использованы в HTTP запросах. Обратите внимание на то, что в данной таблицы сведены поля HTTP заголовков тела HTTP объекта при запросе и служебные поля HTTP заголовков запроса. Так же для удобства в справочнике поля заголовков HTTP запроса упорядочены в алфавитном порядке. В таблице будут приведены сначала служебные поля заголовка запроса, а затем поля заголовка объекта.

Поля HTTP заголовка Описание поля HTTP заголовка Пример
Accept Поле заголовка запроса Accept используется, чтобы определить тип информации, который должен содержаться в ответе HTTP сервера Accept: text/plain; q=0.5, text/html,

text/x-dvi; q=0.8, text/x-c
Accept-Charset Поле заголовка запроса Accept-Charset указывает на кодировку, которая должна быть в ответе сервера. Другими словами: данное поле указывает на то, какие наборы символов приемлемы для ответов сервера Accept-Charset: iso-8859-5, unicode-1-1;q=0.8
Accept-Encoding Поле заголовка запроса Accept-Encoding указывает серверу на то, какие способы кодирования приемлемы для ответа. Accept-Encoding: compress, gzip
Accept-Language Поле заголовка запроса Accept-Language указывает серверу приемлемые языки (естественные языки: русский, китайский, английский и пр.) Accept-Language: da, en-gb;q=0.8, en;q=0.7
Authorization Поле заголовка запроса Authorization используется для отправки данных авторизации на сервер Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Disposition Поле заголовка запроса Content-Disposition используется для сохранения файлов на сервере Content-Disposition: form-data; name="MessageTitle"

Content-Disposition: form-data; name="AttachedFile1"; filename="photo-1.jpg"
Expect Поле заголовка запроса Expect позволяет клиенту задать поведение сервера, например, при помощи данного поля клиент может сообщить серверу, что ожидает от него дальнейших действий. Expect: 100-continue
From Поле заголовка запроса From служит для передачи серверу адреса электронной почты клиента From: user@example.com
Host Поле заголовка запроса Hostиспользуется для указания доменного имени и порта запрашиваемого ресурса. Host: zametkinapolyah.ru
If-Match Поле заголовка запроса If-Match используется клиентом для эффективного обновления кэшируемой информации. В данном поле передается список тегов версий сущности (HTTP объекта) If-Match: «xyzzy»

If-Match: «xyzzy», «r2d2xxxx», «c3piozzzz»

If-Match: *
If-Modified-Since Поле заголовка запроса If-Modified-Since указывает на то, что сервер должен отправить объект, если он изменился с даты, указанной в заголовке. If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match Поле заголовка запроса If-None-Match выполняется клиентом, у которого есть один или более объектов, ранее полученных из ресурса, может проверить, что ни один из тех объектов не является текущим, включая список их связанных тэгов объекта в поле заголовка If-None-Match If-None-Match: «xyzzy»

If-None-Match: W/"xyzzy"

If-None-Match: «xyzzy», «r2d2xxxx», «c3piozzzz»

If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz"

If-None-Match: *
If-Range Поле заголовка запроса If-Range используется клиентом в том случае, когда он имеет частичную копию объекта в его кэше, и желает иметь современную копию всего объекта If-Range: «737060cd8c284d8af7ad3082f209582d»
If-Unmodified-Since Поле заголовка запроса If-Unmodified-Since используется клиентом если если запрошенный ресурс не был изменен со времени, указанного в этом поле. If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Max-Words Поле заголовка запроса Max-Words используется HTTP методом TRACE, чтобы ограничить число прокси-серверов, иначе может получиться бесконечный цикл. Max-Forwards: 10
Proxy-Authorization Поле заголовка запроса Proxy-Authorization содержит в себе информацию для авторизации на прокси-сервере Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range Поле заголовка запроса Range указывает байтовый диапазон фрагмента ресурса, который требуется клиенту, чтобы не тянуть весь ресурс целиком Range: bytes=50000-99999,250000-399999,500000-
Referer Поле заголовка запроса Referer содержит в себе URI ресурса (читай про URI в HTTP), с которого клиент перешел на данный ресурс Referer: http://zametkinapolyah.ru
TE Поле заголовка запроса TE содержит список расширенных способов кодирования, поддерживаемых клиентом, для передачи. TE: deflate

TE:

TE: trailers, deflate;q=0.5
User-Agent Поле заголовка запроса User-Agent содержит в себе полную информацию о клиенте пользователя, например, о браузере. User-Agent: CERN-LineMode/2.15 libwww/2.17b3
Content-Encoding Поле заголовка запроса Content-Encoding указывает на дополнительный способ кодирования тела HTTP объекта с целью сжатия Content-Encoding: gzip

 
Content-Language Поле заголовка запроса Content-Language указывает серверу на каком языке нужна информация (метки и тэги в HTTP), находящаяся в теле объекта. Content-Language: mi, en
Content-Length Поле заголовка запроса Content-Length указывает необходимую длину тела сообщения в байтах Content-Length: 3495
Content-Location Поле заголовка запроса Content-Location используется для идентификации исходного местоположения объекта на сервере. «Content-Location» «:»   (absoluteURI | relativeURI )
Content-MD5 Поле заголовка запроса Content-MD5 используется для проверки целостности объектов сообщений, так как хэш значительно меньше самого сообщения. Content-MD5  : 8c2d46911f3f5a326455f0ed7a8ed3b3
Content-Range Поле заголовка запроса Content-Range используется в том случае, когда клиент запрашивает фрагмент HTTP сообщение. Данное поле имеет значение байтового диапазона требуемого фрагмента Content-Range: bytes 88080384-160993791/160993792
Content-Type Поле заголовка запроса Content-Type используется для указания медиа типа данных в теле сообщения. Content-Type: text/html;charset=utf-8
Content-Version Поле заголовка запроса Content-Version содержит информацию о текущей версии HTTP объекта (обычно не реализуется)
Derived-From Поле заголовка запроса Derived-From это аналог Content-Version (обычно не реализуется)
Expires Поле заголовка запроса Expires содержит дату и время того момента, когда информация HTTP объекта перестанет быть актуальной Expires: Tue, 31 Jan 2012 15:02:53 GMT
Last-Modified Поле заголовка запроса Last-Modified содержит дату последней модификации HTTP объекта Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Link Поле заголовка запроса Link указывает на логически связный с сущностью ресурс (обычно не реализуетсяя)
Title Поле заголовка запроса Title содержит заголовок объекта

 

Поля HTTP заголовка ответа сервера

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

Поля HTTP заголовка Описание поля HTTP заголовка Пример
Accept-Ranges Поле заголовка ответа Accept-Ranges. Этим полем сервер сообщает клиенту о том, в каких единицах измерения тот может запрашивать фрагменты объекта Accept-Ranges: bytes

Accept-Ranges: none
Age Поле заголовка ответа Age хранит в себе количество секунд с момента последней модификации ресурса
Alternates Поле заголовка ответа Alternates указывает на альтернативные способы представления ресурса и обычно не реализуется серверами.
Content-Disposition Поле заголовка ответа Content-Disposition используется для сохранения файлов на серверной машине
ETag Поле заголовка ответа ETag идентифицирует версию кэша HTTP объекта ETag: «56d-9989200-1132c580»
Location Поле заголовка ответа Location указывает URI, на котором хранится запрошенный ресурс Location :absoluteURI
Proxy-Authenticate Поле заголовка ответа Proxy-Authenticate содержит в себе информацию о параметрах аутентификации на прокси-сервере Proxy-Authenticate  :challenge
Public Поле заголовка ответа Public содержит в себе список доступных методов (читай про методы в HTTP) для всего HTTP сервера Public: OPTIONS, MGET, MHEAD, GET, HEAD
Retry-After Поле заголовка ответа Retry-After обычно используется сервером вместе с кодом состояния 503 (код ошибки сервера) и указывает на то, как долго ресурс будет недоступен Retry-After: Fri, 31 Dec 1999 23:59:59 GMT

Retry-After: 120
Server Поле заголовка ответа Server содержит в себе необходимую информацию о сервере для установления HTTP соединения Server: Apache/2.2.17 (Win32) PHP/5.3.5
Vary Поле заголовка ответа Vary указывает клиенту на то, что HTTP объект имеет несколько источников и его содержимое может изменяться в зависимости от выбранного источника, указанного в URI Vary: Accept-Language, Accept-Encoding
WWW-Authenticate Поле заголовка ответа WWW-Authenticate используется сервером вместе с кодом состояния 401 (код ошибки клиента). В данному поле указываются схемы аутентификации и требуемые параметры для доступа к ресурсу WWW-Authenticate  = «WWW-Authenticate» «:» 1#challenge
Allow Поле заголовка ответа Allow передает клиенту методы, которые тот может использовать Allow: GET, HEAD, PUT
Content-Encoding Поле заголовка ответа Content-Encoding указывает на дополнительный способ кодирования тела HTTP объекта с целью сжатия Content-Encoding: gzip
Content-Language Поле заголовка ответа Content-Language указывает клиенту на каком языке  информация, находящаяся в теле объекта. Content-Language: mi, en
Content-Length Поле заголовка ответа Content-Length указывает необходимую длину тела сообщения в байтах Content-Length: 3495
Content-Location Поле заголовка ответа Content-Location используется для идентификации исходного местоположения объекта на сервере. «Content-Location» «:»absoluteURI | relativeURI )
Content-MD5 Поле заголовка ответа Content-MD5 используется для проверки целостности объектов сообщений, так как хэш значительно меньше самого сообщения. Content-MD5  : 8c2d46911f3f5a326455f0ed7a8ed3b3
Content-Range Поле заголовка ответа Content-Range используется в том случае, когда клиент запрашивает фрагмент HTTP сообщение. Данное поле имеет значение байтового диапазона требуемого фрагмента Content-Range: bytes 88080384-160993791/160993792
Content-Type Поле заголовка ответа Content-Type используется для указания медиа типа данных в теле сообщения.

 
Content-Type: text/html;charset=utf-8
Content-Version Поле заголовка ответа Content-Version содержит информацию о текущей версии HTTP объекта (обычно не реализуется)
Derived-From Поле заголовка ответа Derived-From это аналог Content-Version (обычно не реализуется)

 
Expires Поле заголовка ответа Expires содержит дату и время того момента, когда информация HTTP объекта перестанет быть актуальной Expires: Tue, 31 Jan 2012 15:02:53 GMT
Last-Modified Поле заголовка ответа Last-Modified содержит дату последней модификации HTTP объекта Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Link Поле заголовка ответа Link указывает на логически связный с сущностью ресурс (обычно не реализуетсяя)
Title Поле заголовка ответа Title содержит заголовок объекта

Общие поля HTTP заголовка

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

Поля HTTP заголовка Описание поля HTTP заголовка Пример
Cache-Control Общее поле HTTP заголовка Cache-Control определяет директивы для управления кэшем, которым должны следовать все кэширующие механизмы Cache-Control: no-cache

Cache-Control: no-store

Cache-Control: max-age=3600

Cache-Control: max-stale=0

Cache-Control: min-fresh=0

Cache-Control: no-transform

Cache-Control: only-if-cached

Cache-Control: cache-extension
Connection Общее поле HTTP заголовка Connection позволяет управлять HTTP соединением Connection: close
Date Общее поле HTTP заголовка хранит дату и время создания HTTP сообщения Date: Tue, 15 Nov 1994 08:12:31 GMT
MIME-Version Общее поле HTTPзаголовка MIME-Version содержит     версия протокола MIME, по которому было сформировано сообщение. MIME-Version   = «MIME-Version» «:» 1*DIGIT «.» 1*DIGIT
Pragma Общее поле HTTP заголовка Pragma используется для включения особых директив, которые применяются к любому получателю HTTP сообщения. Pragma: no-cache
Trailer Общее поле HTTP заголовка Trailer хранит в себе список полей, которые имеют отношение к кодированию сообщения и кодированию передачи. Trailer :field-name
Transfer-Encoding Общее поле HTTP заголовка Transfer-Encoding служит для передачи списка методов кодирования передачи Transfer-Encoding: chunked
Upgrade Общее поле HTTP заголовкаUpgrade служит для передачи версий HTTP протокола, которые поддерживает клиент. Сервер на сообщение со списком отвечает сообщением с одним протоколом Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Via Общее поле HTTP заголовкаVia служит для отображения списка версий протокола HTTP, названий и версий прокси-серверов, через которые прошло сообщение. Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

Поля заголовка объекта HTTP сообщения

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

Поля HTTP заголовка Описание поля HTTP заголовка Пример Тип HTTP сообщения
Allow Поле заголовка  Allow передает клиенту методы, которые тот может использовать Allow: GET, HEAD, PUT Ответ
Content-Disposition Поле заголовка  Content-Disposition используется для сохранения файлов на сервере Запрос и ответ
Content-Encoding Поле заголовка Content-Encoding указывает на дополнительный способ кодирования тела HTTP объекта с целью сжатия Content-Encoding: gzip Запрос и ответ
Content-Language Поле заголовка Content-Language указывает клиенту на каком языке  информация, находящаяся в теле объекта. Content-Language: mi, en Запрос и ответ
Content-Length Поле заголовка Content-Length указывает необходимую длину тела сообщения в байтах Content-Length: 3495 Запрос и ответ
Content-Location Поле заголовка Content-Location используется для идентификации исходного местоположения объекта на сервере. «Content-Location» «:»absoluteURI | relativeURI ) Запрос и ответ
Content-MD5 Поле заголовка Content-MD5 используется для проверки целостности объектов сообщений, так как хэш значительно меньше самого сообщения.

 
Content-MD5  : 8c2d46911f3f5a326455f0ed7a8ed3b3 Запрос и ответ
Content-Range Поле заголовка Content-Range используется в том случае, когда клиентское приложение запрашивает фрагмент HTTP сообщение. Данное поле имеет значение байтового диапазона требуемого фрагмента Content-Range: bytes 88080384-160993791/160993792 Запрос и ответ
Content-Type Поле заголовка Content-Type используется для указания медиа типа данных в теле сообщения.

 
Content-Type: text/html;charset=utf-8 Запрос и ответ
Content-Version Поле заголовка Content-Version содержит информацию о текущей версии HTTP объекта (обычно не реализуется)

 
Запрос и ответ
Derived-From Поле заголовка Derived-From это аналог Content-Version (обычно не реализуется)

 
Запрос и ответ
Expires Поле заголовка Expires содержит дату и время того момента, когда информация HTTP объекта перестанет быть актуальной Expires: Tue, 31 Jan 2012 15:02:53 GMT Запрос и ответ
Last-Modified Поле заголовка Last-Modified содержит дату последней модификации HTTP объекта Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT Запрос и ответ
Link Поле заголовка Link указывает на логически связный с сущностью ресурс (обычно не реализуется) Запрос и ответ
Title Поле заголовка Title содержит заголовок объекта Запрос и ответ

Не забывайте делиться своим мнением в комментариях и оставлять отзывы, это поможет сделать нашу работу лучше, с уважением ZametkiNaPolyah.ru!

3 комментария к записи Тема 10: Справочник полей HTTP заголовков. Список полей HTTP заголовка. Заголовки HTTP сообщений: запросов и ответов

Sticks

А подробного описания полей не будет с разными вариантами значений?

Кирилл

Скорее всего более подробно про поля заголовка HTTP я уже писать не буду, так как это не совсем целесообразно. В стандарте есть подробное описание.

Irk38

В закладочки страницу добавил, очень удобно, что есть все поля заголовков в одном месте с описанием и отсортированные

Текст комментария: