GET 与 POST 两种基本请求方法的区别

  1. 最直观的是GET把参数包含在URL中,而POST通过request body传递参数
  2. GET在浏览器回退时是无害的,而POST会再次提交申请
  3. GET产生的URL地址可以被bookmark,而POST不可以 

    备注:在GET请求中,请求的所有信息都在URL中编码。在POST请求中,请求是对指定的URL进行的,但是与该请求有关的所有信息表单内容在请求主体中传递。

    当您为一个URL添加书签时,您只会将网址添加为书签,而不是请求正文。例如。如果您在网页上填写表单,然后将其作为POST请求传递给网络服务器,然后您在浏览器中为响应页面添加书签,则浏览器将只记录该URL,但不记录表单主体。

    此外,当您在浏览器中为页面添加书签时,书签仅包含URL,但不包含请求方法。浏览器对所有书签始终使用GET

  4. GET请求会被浏览器主动cache,而POST不会,除非是手动设置
  5. GET请求只能进行URL编码,而POST支持多种编码方式

    备注:1.application/x-www-form-urlencoded

          2.multipart/form-data

               3.application/json

               4.text/xml

  6. GET请求参数会被完整保留在浏览器历史记录里,而POST的餐数则不会
  7. GET请求在URL中传送的参数是有长度限制的,而POST没有
  8. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
  9. GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息

实际上,GET和POST只是HTTP协议上的两个发送请求的方法,他们的底层都是TCP/IP。

GET产生一个TCP数据包;POST产生两个数据包(不需要因此使用GET代替POST,一者为双方有自己的语义,不好混用,二者是在好网络环境较好的情况下,发送一次或者两次根本没有太大的区别)

并不是所有的浏览器的POST都是发送两次数据包,Firefox就只发了一次。

posted @ 2020-11-23 19:29  ITShadow  阅读(177)  评论(0)    收藏  举报