Решено: вставляя байты, я понял, что я пропускаю пустые строки между кусками...
Требуется ли запрос HTTP/1.1 указать заголовок Connection: keep-alive
или он всегда поддерживается по умолчанию?
Это руководство заставило меня подумать; что, когда мой HTTP-сервер получает запрос 1.1, он остается в живых, если явно не получает заголовок Connection: close
.
Я спрашиваю, потому что мое поведение клиента по-разному ab
и httperf
приводит меня в бешенство, чтобы удивляться моему здравомыслию в этом...
Здесь httperf --hog --port 42042 --print-reply body
отправляет:
GET / HTTP/1.1
User-Agent: httperf/0.9.0
Host: localhost
И вот мой ответ сервера:
HTTP/1.1 200 OK
Connection: keep-alive
Transfer-Encoding: chunked
Content-Length: 18
12
Hello World 1
0
httpref
быстро распечатывает ответ, но затем просто сидит там, ни одна из сторон не закрывает соединение, а httpref
не выходит.
Где моя ошибка?