详谈get与post的区别

get与post的区别


  1. 两者的请求格式
    • http请求格式
      在这里插入图片描述
      说明:
      • 第一行,包括:请求方法,请求url,http版本(可略)
      • 第二行,头部信息,可以为0个或者多个,说明服务器要使用的附加信息
      • 第三行,空行,作为头部与报文实体分割
      • 第四行,报文实体的主体部分,任意数据组成的数据块
    • get请求实例
      在这里插入图片描述
    • post请求实例
      在这里插入图片描述
  2. 两者对比
    • 参数传输方式以及编码格式
      • get,请求的数据以querystring的格式附加在url后面。编码格式采用ASCII
      • post,请求数据放在请求body中,编码格式为unicode
    • 传输数据大小
      • get,url长度以及数据大小有限制
      • post,由于不是url传值,理论上无限制
        ps:http规范中,没有对url长度以及传输的数据大小进行限制,出现上述区别主要是因为浏览器以及服务器。实际中,服务器也会对post提交的数据进行限制
    • 产生的tcp数据包
      • get,产生一个,浏览器将http header以及data发送出去,服务器响应200
      • post,产生两个,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200
        ps:并非所有浏览器的post都会发送两次包,firefox就发送一次
    • 安全性
      • 从是否修改服务器资源上说
        • get,不修改服务器资源
        • post,修改服务器资源
      • 从参数而言
        • get,直接暴露参数
        • post,隐藏参数
          ps:最终的安全与否,视使用情况。例如http中定义get的方式用于读取资源,但实际开发中却使用了get的方式去修改资源,这样的情况,get被认为不安全对get而言是不公平的~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值