我注意到发送POST请求的方法有两种:
(这个主要由浏览器使用)单帧HTTP:请求POST命令和所有相关数据(标题和数据本身),如RFC
(我经常在任何http库中看到不同的语言)两帧: 第一帧是HTTP:请求POST命令和标题(但没有数据)和第二帧HTTP:HTTP Payload只包含帖子数据。
那么这两种请求之间的区别是什么?可以通过第二种方式在理解服务器发布请求时遇到问题吗?
答案 0 :(得分:0)
框架在TCP层处理,而不是在HTTP层处理。如果客户端发送请求标头并发送请求主体之间存在延迟,则Nagle算法可以单独构建它们。
另一种可能性是,如果请求包含Expect: 100-Continue
标头,则客户端将在发送请求正文之前等待服务器发送100
回复(或超时)。这允许服务器失败/拒绝请求,而不会让客户端浪费带宽发送服务器会忽略的数据。