网站开发 APP开发 小程序开发 SEO优化 公司新闻

POST与GET这对恋人的生死情缘!

2018-05-17 10:02:44
851

  GET与POST有什么区别呢?

  1.使用get发送请求时会把参数放到URL中,而POST则把参数放到ReqestBody中

  2.get与post都有特定的作用域,例: 文件上传只能以POST,get则不行

  3.get传的参数有大小限制,而post的则没有大小限制

  3.get会呗浏览器freeMarker,post则不会

  4.对于get方式服务器端使用request.queryString获取参数,post方式使用request.form获取

  5.get因为参数在url后面所以安全性较低,post则较高

  6.get只能接受ascll字符, post没有限制

  要想知道他们的具体区别,那么就让我们脱掉他华丽的外衣吧!!

  Get和POST本质上都是是两种发送请求的方式,都是http中发送请求的方式。

  那么http是什么呢,http是基于TCP/IP的关于数据如何在万维网中传输的协议,所以说他们的底层都是TCP链接,都是TCP发送请求的两种方式,两者功能是一样的,从技术层面来讲,我们可以在post后面追加参数,在get的requesbody中存入值。
 

  那我们上面说的区别是什么呢?

  其实是在万维网中数据是以TCP数据包的形式传输的,就像小汽车一样,但是如果都是一模一样的小汽车的话那就乱套了,所以这时交通规则http就出来了,http规定执行get请求的就要把货放到车顶(url),执行post请求的就要吧货放在车内(requestbody)

  中,当然get请求也可以把货偷偷藏到车内,当然这样是可耻的的

  这个时候另一个大BOSS运输公司(浏览器,服务器),就出来了,不同的运输公司处理的方式是不一样的,毕竟拉货都是有成本的啊,有的会把post请求放到url的货物取出来,也会吧get藏到车内搜出来,但是有的却不会,所以说上面的区别都是根据浏览器服务器的不同产生的

  但是,你以为这样就结束了吗

  Get和post的最大的区别就是get在发送请求的时会把请求的头和body全部传输过去,服务器直接响应200成功,而post则不然,post会先把post的头 发送过去,服务器相应100 continue,再把data传送过去 服务器响应200成功,就是小汽车发货时先跑过去说 :“亲爱的!!我要发货啦!!!” , 服务器响应: “好勒!!!!”,然后小汽车再把货发过去

  因为POST需要两部,所以看起来POST是比较慢!!!但是经过海威的测试,在网速好的情况下,区别是不大的.

  而且刚才也说了他们有各自的作用域,不能乱用哦!