get,post请求区别

get通常用于从服务器中取数据比如获取新闻列表,文件列表等,post通常用于往服务器存数据,修改表单信息,上传文件等。

一、从传参来讲

  1. get传参在请求头上(url地址?后以'='分割的键值对方式);post传参在请求体内
  2. get传参需要用URI编码方式(ASCLL码),如果传参非ASCLL码可以用js中encodeURI对参数进行转化,post对编码方式无限制 
  3. http协议并未对传参大小作限制,浏览器从性能方面考虑往往限制了大小 ,get请求的urlIE为2kb 谷歌8kb,post请求参数tomcat默认限制为2mb(通过配置可以修改大小),url超出限制状态码会返回414
  4. get请求传参有浏览器历史记录,post请求无浏览器历史记录

二、从页面来讲

  1. get请求默认有缓存,post请求无缓存(可手动设置)
  2. get请求可以添加为书签,可储存,post请求无法存储
  3. get请求回退刷新无影响,post请求会重新发起请求

三、从性能来讲

  1. get请求产生一个TCP数据包,发送 请求行 和 请求头,服务器返回200;post请求产生两个TCP数据包,一次带着请求行和请求头(编码方式等)发送,服务器响应100 continue,然后在发送请求体,服务器响应200

本质上讲get,post都是http基于TCP协议上的封装,即都是TCP,即get请求也可以在请求体内传参,post请求也可以在请求头上传参 (部分浏览器使用有区别)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值