GET 和 POST 的区别?

avatar 2018年07月04日19:42:19 6 2453 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
  • get参数通过url传递,post放在request body中。
  • get请求在url中传递的参数是有长度限制的,而post没有。
  • get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。
    • get请求只能进行url编码,而post支持多种编码方式
    • get请求会浏览器主动cache,而post不能。
    • get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。
  • GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。
  • GET产生一个TCP数据包;POST产生两个TCP数据包。
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
(据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。)
GET和POST的区别:























































 GETPOST
点击返回/刷新按钮没有影响数据会重新发送(浏览器将会提示用户“数据被重新提交”)
添加书签可以不可以
缓存可以不可以
编码类型(Encoding type)application/x-www-form-urlencodedapplication/x-www-form-urlencoded or multipart/form-data. 请为二进制数据使用multipart编码
历史记录没有
长度限制没有
数据类型限制只允许ASCII字符类型没有限制。允许二进制数据
安全性查询字符串会显示在地址栏的URL中,不安全,请不要使用GET请求提交敏感数据因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST求情比GET请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输
可见性查询字符串显示在地址栏的URL中,可见查询字符串不会显示在地址栏中,不可见

其他HTTP请求方式





























方式描述
HEAD与GET请求类似,不同在于服务器只返回HTTP头部信息,没有页面内容
PUT上传指定URL的描述
DELETE删除指定资源
OPTIONS返回服务器支持的HTTP方法
CONNECT转换为透明TCP/IP隧道的连接请求

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0