http post 100 continue

今天看到群里分享了知乎的帖子。前面讲的都很不错,只是有一处争论比较大

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

和群里的小伙伴讨论了下,大家都比较懵逼,开始求证。
翻看各种帖子

  • Http rfc 8.2
  • rfc 9.5
  • php实现curl的帖子
    看完各种资料后,个人觉得发送2次tcp请求不是http协议要求的。只是说post和put可以设置这个header,如果设置了需要发送个100的header请求,然后在接受body前会做次Expect:100-continue验证,然后再继续发送body体,这对大文件上传是有很好的性能提升,比如大文件上传的前置权限校验。

得出结论继续求证,问了下公司UC浏览器的开发同学,UC对get和post是一次性发送,所以以上推断是对的,是客户端来进行实现,http协议提供了对post和put可以设置100的response header。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容