Подтвердить что ты не робот

Тайм-аут ожидания HTTP

Можно ли указать время ожидания HTTP или указать сервер значение? Например, если я:

telnet my.server.net 80
Trying X.X.X.X...
Connected to my.server.net.
Escape character is '^]'.
GET /homepage.html HTTP/1.0
Connection: keep-alive
Host: my.server.net

HTTP/1.1 200 OK
Date: Thu, 03 Oct 2013 09:05:28 GMT
Server: Apache
Last-Modified: Wed, 15 Sep 2010 14:45:31 GMT
ETag: "1af210b-7b-4904d6196d8c0"
Accept-Ranges: bytes
Content-Length: 123
Vary: Accept-Encoding
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html
[...]

Строка:

Keep-Alive: timeout=15, max=100

... указывает, что существует максимальное время ожидания 100 секунд, правильно? Как установить такое значение?

4b9b3361

Ответ 1

Клиент не может указать тайм-аут, именно конфигурация сервера определяет максимальное значение таймаута. Дополнительный заголовок Keep-Alive может информировать клиента о том, как долго сервер будет поддерживать открытое соединение (timeout = N value) и сколько запросов вы можете выполнить по одному и тому же соединению (max = M), прежде чем сервер закроет закрытие соединения.

См. также Правильное использование KeepAlive в Apache Htaccess

Ответ 2

Да, вы можете указать время ожидания, но сервер не обязан использовать это значение. Если сервер настроен с другим таймаутом, он вернет свой собственный заголовок Keep-Alive.

Заголовок Keep-Alive - это заголовок для каждого перехода, который предоставляет информацию о постоянном соединении. И клиент, и сервер могут предоставлять информацию независимо друг от друга. (HTTP-заголовок Keep-Alive для протокола передачи гипертекста (HTTP))