Poo*_*ven 1 c# asp.net tcp keep-alive
据我了解,该keep-alive消息旨在防止底层 TCP 连接关闭,以便可以通过同一 TCP 连接发送多个请求。
然而,尚不清楚这如何影响已超时的请求:
HttpWorkerRequest.IsClientConnected如果底层 TCP 连接关闭,这是错误的?如何判断客户端是否超时?肯定不能再发送响应了吗?keep-alive消息,那么它对请求有什么影响(如果有的话)?我预计它不会产生任何影响,并且超时等机制将照常工作。感谢您的时间和帮助。
HTTP keep-alive(不应与 TCP keep-alive 混淆)要求服务器在 HTTP 响应完全发送后不要关闭连接。因此,HTTP 保持活动状态仅与发送 HTTP 响应之后和接收下一个 HTTP 请求之前的时间相关。
...当客户端超时时,ASP.NET 如何知道?
服务器正在尝试读取数据。如果客户端关闭连接,服务器将收到通知(例如读取 0 字节),并且也会关闭连接。
...肯定不能再发送响应了吗?
重复一遍,HTTP 保持活动状态仅在发送完整响应后才相关。所以这个问题与HTTP keep-alive无关。
既然客户端可以发送保持活动消息,那么它对请求有什么影响(如果有的话)?
对当前请求没有影响。但客户端必须意识到,服务器可能会在发送 HTTP 响应之后、服务器收到新请求之前随时关闭连接。因此,服务器可能会在客户端尝试发送新请求的同时关闭连接。在这种情况下,客户端必须在新连接中重试幂等请求 (GET),而其他请求将失败。
| 归档时间: |
|
| 查看次数: |
3096 次 |
| 最近记录: |