我找到了关于“连接超时”的两种解释:
当客户端在 [timeout] 秒内未向服务器发送任何字节时,服务器将关闭套接字连接。它似乎与 HTTP 标头有一些关系(Connection: keep-alive
).
如果在此期间未建立套接字连接,则客户端将在 [timeout] 秒后停止尝试连接到服务器。
所以我对这个定义很困惑。什么是连接超时?客户端连接超时和服务器端连接超时有什么区别?
TimeToLive、连接超时和请求超时之间有什么区别?
我会尝试更非正式地回答这个问题。
连接超时- 是客户端和服务器之间必须建立连接的时间段。假设您将浏览器(客户端)导航到某个网站(服务器)。发生的情况是,您的浏览器开始侦听来自该服务器的响应消息,但由于各种原因(例如服务器离线),该响应可能永远不会到达。因此,如果 X 秒后服务器仍然没有响应,您的浏览器将“放弃”等待,否则可能会陷入永久等待。
请求超时- 与前面的情况一样,客户端不愿意等待服务器的响应太长时间,服务器也不愿意使未使用的连接保持活动状态太长时间。一旦服务器和客户端之间的连接建立起来,客户端必须通过向服务器发送信息定期通知服务器它仍然存在。如果客户端未能在指定时间内向服务器发送任何信息,服务器会简单地断开此连接,因为它认为客户端不再与其通信(为什么会毫无意义地浪费资源)。
生存时间 (TTL)- 是数据包内部指定的一个值,该值在创建数据包时设置(通常为 255),指示数据包可以在网络中保持活动状态的时间。当该数据包通过网络时,它到达位于数据包的来源和目的地之间的路径上的路由器。每次路由器重新发送数据包时,它也会将其 TTL 值减 1,如果该值降至 0,则路由器不会重新发送数据包,而是将其丢弃,因为数据包不再存在。这种机制用于防止网络被数据淹没,因为每个数据包只能在其中存在有限的“时间”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)