Потому что так определяется протокол HTTP . В частности, HTTP 1.0 определяет запрос , например, :
Request = Simple-Request | Full-Request
Full-Request = Request-Line
*( General-Header
| Request-Header
| Entity-Header )
CRLF
[ Entity-Body ]
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
Full-Request
, который должен использоваться любым клиентом, совместимым с HTTP 1.0 (простой запрос - HTTP 0.9 и не рекомендуется ) необходимо иметь два токена CRLF
(один находится в Request-Line
). Токен CRLF
- это два байта \r\n
. Следовательно, в вашем примере необходимо завершить строку \r\n\r\n
.
Этот вариант дизайна был сохранен в HTTP 1.1.