44

我可以指定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 秒,对吗?我该如何设置这样的值?

4

2 回答 2

73

客户端无法指定超时,服务器配置决定了最大超时值。额外的 Keep-Alive 标头可以通知客户端服务器愿意保持连接打开多长时间(timeout=N 值)以及在服务器强制关闭之前您可以通过同一连接执行多少请求(max=M)的连接。

另请参阅在 Apache Htaccess 中正确使用 KeepAlive

于 2013-10-03T11:11:50.360 回答
3

是的,您可以指定超时,但服务器没有义务使用该值。如果服务器配置了不同的超时,它将返回自己的 Keep-Alive 标头。

Keep-Alive 标头是一个逐跳标头,它提供有关持久连接的信息。客户端和服务器都能够独立提供信息。(超文本传输​​协议 (HTTP) Keep-Alive 标头

于 2018-12-20T13:59:41.803 回答