我想弄清楚在哪里放置服务器使用HTTP调用到另一台服务器检索结果。 我似乎无法find定义最大响应时间的HTTP的任何定义,虽然我有一个1800毫秒模糊的回忆。
有没有人知道在哪里定义,甚至有一个相对权威的来源,延迟时间?
没有RFC似乎写了! 但主要的Web服务器有一些默认值。
IIS :connectionTimeout;
HTTP.sys Timer_EntityBody计时器已过期。 连接在请求实体主体到达之前过期。 如果请求具有实体主体,则HTTP API会打开Timer_EntityBody计时器。 最初,此计时器的限制设置为connectionTimeout值。 每次收到此请求的另一个数据指示时,HTTP API都会重置计时器,以使connectionTimeout属性中指定的连接数更多。
<system.applicationHost> <sites> <siteDefaults> **<limits connectionTimeout="00:02:00" />** </siteDefaults> </sites> </system.applicationHost>
阿帕奇
默认:header = 20-40,MinRate = 500 body = 20,MinRate = 500
允许10秒钟接收请求,包括标题和接收请求主体30秒:
RequestReadTimeout header = 10 body = 30
允许至less10秒钟接收请求主体。 如果客户端发送数据,则将收到的每1000个字节的超时时间增加1秒,没有超时上限(LimitRequestBody间接给出的限制除外):
RequestReadTimeout正文= 10,MinRate = 1000
允许至less10秒钟接收包括标题的请求。 如果客户端发送数据,则每接收500个字节,超时时间增加1秒。 但请不要超过30秒,包括标题的请求:
RequestReadTimeout头= 10-30,MinRate = 500
通常,服务器应该configuration标题和主体超时。 如果通用configuration用于http和https虚拟主机,则超时不应设置得太低:
RequestReadTimeout头= 20-40,MinRate = 500 body = 20,MinRate = 500
编辑:
如果你的意思是在客户端; 那么它是编码的东西。根据select的function; 在这种情况下,读取缓冲区可以返回:
readfds:
- 如果侦听已经被调用,并且连接处于挂起状态,则接受将成功。
- 数据可用于读取(如果启用了SO_OOBINLINE,则包括OOB数据)。
- 连接已closures/重置/终止。
这意味着在select的调用之间,只要远程连接没有被丢弃,select就不会返回任何东西,并且会等到你定义的一个值closures你的客户端连接。