- GET 参数通过 URL 传递,POST 放在 Request body 中。(所以POST比较安全)
- GET 请求在 URL 中传送的参数是有长度限制的,而 POST 么有。(因为一个数据在URL中,一个在Body中,这是浏览器的限制)
- GET只能使用URL编码,POST支持多种编码
- GET 在浏览器回退时是无害的,而 POST 会再次提交请求。(带参数的提交奥,注意幂等)
- GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包。(GET直接传递header和body,POST先传递header,服务返回100后再传递body)
- 下面的都不太重要。
- GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。
- GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留。
- GET 产生的 URL 地址可以被 Bookmark,而 POST 不可以。
- 对参数的数据类型,GET 只接受 ASCII 字符,而 POST 没有限制。
- 参考:
- 99% 的人理解错 HTTP 中 GET 与 POST 的区别 - 开源中国 https://www.oschina.net/news/77354/http-get-post-different