GET 与 POST 两种基本请求方法的区别
- 最直观的是GET把参数包含在URL中,而POST通过request body传递参数
- GET在浏览器回退时是无害的,而POST会再次提交申请
- GET产生的URL地址可以被bookmark,而POST不可以
备注:在
GET请求中,请求的所有信息都在URL中编码。在POST请求中,请求是对指定的URL进行的,但是与该请求有关的所有信息表单内容在请求主体中传递。当您为一个URL添加书签时,您只会将网址添加为书签,而不是请求正文。例如。如果您在网页上填写表单,然后将其作为
POST请求传递给网络服务器,然后您在浏览器中为响应页面添加书签,则浏览器将只记录该URL,但不记录表单主体。此外,当您在浏览器中为页面添加书签时,书签仅包含URL,但不包含请求方法。浏览器对所有书签始终使用
GET。 - GET请求会被浏览器主动cache,而POST不会,除非是手动设置
- GET请求只能进行URL编码,而POST支持多种编码方式
备注:1.application/x-www-form-urlencoded
2.multipart/form-data
3.application/json
4.text/xml
- GET请求参数会被完整保留在浏览器历史记录里,而POST的餐数则不会
- GET请求在URL中传送的参数是有长度限制的,而POST没有
- 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
- GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
实际上,GET和POST只是HTTP协议上的两个发送请求的方法,他们的底层都是TCP/IP。
GET产生一个TCP数据包;POST产生两个数据包(不需要因此使用GET代替POST,一者为双方有自己的语义,不好混用,二者是在好网络环境较好的情况下,发送一次或者两次根本没有太大的区别)
并不是所有的浏览器的POST都是发送两次数据包,Firefox就只发了一次。

浙公网安备 33010602011771号