це запит HTTP/1.1, який неявно зберігається за замовчуванням?

Solved: pasting the bytes here made me realise that I was missing empty lines between chunks...


У запиті HTTP/1.1 потрібно вказати заголовок Connection: keep-alive , чи за замовчуванням він завжди залишається живим?

This guide made me think it would; that, when my http server gets a 1.1 request, it is keep-alive unless explicitly receiving a Connection: close header.

Я запитую, тому що моє поведінка ab і httperf в різних клієнтах заважає мені здивувати мою розсудливість на цьому ...


Ось що надсилає httperf --hog --port 42042 - body_print-response 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 promptly prints out the response, but then just sits there, neither side closing the connection and httpref not exiting.

Де моя помилка?

13
Довжина вмісту в кодуванні кодується не має сенсу
додано Автор nurettin, джерело
Так, keep-alive - це стандартний HTTP/1.1.
додано Автор Benjie, джерело

1 Відповіді

З розділу RFC 2616, розділ 8.1.2 :

Значна різниця між HTTP/1.1 та попередніми версіями HTTP полягає в тому, що постійні з'єднання є поведінкою за замовчуванням для будь-якого HTTP-з'єднання. Тобто, якщо інше не вказано, клієнт повинен Вважати, що сервер підтримуватиме постійне з'єднання, навіть після відповіді на відповідь сервера.

19
додано