Это зависит от того, что вы определяете как обязательное: нет полей заголовка, которые должны отправляться с каждым ответом, независимо от обстоятельств, но есть поля заголовка, которые вы действительно должны отправить.Единственное поле заголовка, которое подходит ближе - это Date
, но даже в нем есть обстоятельства, при которых оно не требуется.
На языке RFC 2119 термин ДОЛЖЕН означает, что что-то является требованием спецификации, и несоблюдение этого требования будет недействительным.Поля заголовка не определены в RFC 7230 , 7231 , 7232 , 7233 , 7234 или 7235 чтобы ДОЛЖНО быть отправлено сервером происхождения во всех случаях .
Следующие заголовки, например, могут быть опущены (хотя вы, вероятно, должны их отправить):
Сервер происхождения НЕ ДОЛЖЕН отправлять поле заголовка Date
, если у него нет часов, способных обеспечить разумную аппроксимацию текущего экземпляра в универсальном координированном времени.Исходный сервер МОЖЕТ отправить поле заголовка Date
, если ответ находится в классе кодов состояния 1xx (информационный) или 5xx (ошибка сервера).Сервер происхождения ДОЛЖЕН отправить поле заголовка Date
во всех остальных случаях.
Обратите внимание на последнее предложение цитаты.Поле заголовка Date
ДОЛЖНО быть отправлено, если исходный сервер способен обеспечить «разумное приближение» даты в UTC, но ничто не мешает серверу исказить себя.
Исходный сервер МОЖЕТ генерировать в своих ответах поле Server
.
Помимо [конечного числа предопределенных случаев], при отсутствии Transfer-Encoding
серверу происхождения СЛЕДУЕТ отправить поле заголовка Content-Length
, когда размер тела полезной нагрузкиизвестен перед отправкой полного раздела заголовка.
Что касается Content-Length
и Transfer-Encoding
, обратите внимание, что ни один из них не может быть отправлен, и в этом случае длина ответа "определяетсяколичество октетов, полученных до того, как сервер закрыл соединение. "
Если поле заголовка Content-Type
отсутствует, получатель МОЖЕТ либо принять тип носителя application/octet-stream
(RFC2046, раздел 4.5.1), либо проверить данныечтобы определить его тип.
Существуют обстоятельства, при которых могут потребоваться определенные заголовки, например: