高级前端
http
【Q580】http 方法 get 与 post 有何区别

http 方法 get 与 post 有何区别

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 596 (opens in a new tab)

Author 回答者: haotie1990 (opens in a new tab)

  • GET在浏览器回退时是无害的,而POST会再次提交请求。

  • GET产生的URL地址可以被Bookmark,而POST不可以。

  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

  • GET请求只能进行url编码,而POST支持多种编码方式。

  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

  • GET请求在URL中传送的参数是有长度限制的,而POST么有。

  • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

  • GET参数通过URL传递,POST放在Request body中。

  • GET产生一个TCP数据包;POST产生两个TCP数据包

Author 回答者: shfshanyue (opens in a new tab)

TODO

Author 回答者: shfshanyue (opens in a new tab)

@haotie1990 GET产生一个TCP数据包;POST产生两个TCP数据包。这句话不准确吧

Author 回答者: haotie1990 (opens in a new tab)

@haotie1990 GET产生一个TCP数据包;POST产生两个TCP数据包。这句话不准确吧

POST请求,header和body时分两次发送的

https://blog.josephscott.org/2009/08/27/xmlhttprequest-xhr-uses-multiple-packets-for-http-post/ (opens in a new tab)