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 перед запросом и после него.