RFC: 2068
Оригинал: Hypertext Transfer Protocol - HTTP/1.1
Другие версии: RFC 2616
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Алексей Симонов

4. HTTP сообщение (HTTP Message)

4.1. Типы сообщений

HTTP сообщения делятся на запросы клиента серверу и ответы сервера клиенту.

HTTP-message   = Request | Response    ; сообщения HTTP/1.1

Сообщения запроса (раздел 5) и ответа (раздел 6) используют обобщенный формат сообщения RFC 822 [9] для пересылки объектов (полезной нагрузки сообщения). Оба типа сообщений выглядят следующим образом: сначала идет начальная строка (start-line), затем один или несколько полей заголовка (называемых также просто "заголовки"), затем пустая строка (то есть строка, равная CRLF), указывающая конец полей заголовка, а затем, возможно, тело сообщения.

generic-message = start-line
                  *message-header
                  CRLF
                  [ message-body ]

start-line      = Request-Line | Status-Line

В интересах ошибкоустойчивости, серверам СЛЕДУЕТ игнорировать все пустые строки, полученные перед строкой запроса (Request-Line). Другими словами, если сервер читает поток протокола и в самом начале сообщения получает CRLF, то ему следует этот CRLF игнорировать.

Обратите внимание: некоторые ошибочные реализации HTTP/1.0 клиентов генерируют дополнительные CRLF после запроса POST. Стоит вновь повторить, что это явно запрещено нормальной записью Бекуса-Наура. HTTP/1.1 клиент не должен добавлять дополнительные CRLF перед запросом и после него.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.