据我了解,TCP_DEFER_ACCEPT(或者,对于BSD,httpready的接受过滤器)将导致内核延迟通知应用程序挂起的连接,直到整个http消息准备就绪。
我的问题涉及持久(即保持活动)连接,它可以发送多个HTTP请求。内核会缓冲每一个,还是只缓冲最初的一个?如果没有,有没有办法设置我必须为应用程序空间中的每个连接创建一个缓冲区?
答案 0 :(得分:2)
(或者,对于BSD,httpready的接受过滤器)将导致内核延迟通知应用程序挂起的连接,直到整个http消息准备就绪
没有。它推迟完成accept()
'直到数据到达'。
TCP不知道完整的HTTP请求是什么。
在任何情况下,你的问题都没有意义。一旦连接被接受,它就被接受了。到达第二个请求不能改变它。