美文网首页
get 和 post请求的区别

get 和 post请求的区别

作者: 乐百事52淑熙 | 来源:发表于2018-04-10 09:40 被阅读0次

    1.基本区别:

    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与post

    与http其他请求方法比较:

    与其他http请求方法比较

    深入理解:

    GET和POST是HTTP协议中的两种发送请求的方法(实现上面)。

    HTTP是基于TCP/IP关于数据如何在万维网中如何通信的协议。(HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。)

    GET产生一个TCP数据包;POST产生两个TCP数据包。(对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,(如果header里面带了Expect: 100-continue,服务器响应100 continue,若不带(或者超时),直接发data),浏览器再发送data,服务器响应200 ok(返回数据))

    Chrome 55.0.2883.95,two packets:YES

    Safari 10.0.2, two packets:YES

    Firefox 49.0, two packets:NO

    实际上:真正的区别从语义上面,get是获取指定资源,post是请求符合对指定资源做处理。

    get:安全、幂等、可缓存,报文主体没有语义。

    post:不安全,不幂等,不可缓存。

    个人公号:【排骨肉段】,可以关注一下。

    相关文章

      网友评论

          本文标题:get 和 post请求的区别

          本文链接:https://www.haomeiwen.com/subject/lpywhftx.html