get和post两种基本请求方法的区别

1,直观的区别是一般get把参数放在url上,post放在请求体中
但是这不是绝对的,写项目的时候,明明要求是post请求,但是我把参数放在body里没传过去,放在url参数上反而传递成功了,很懵,就搜搜万能的网友有什么见解,
实际上get和post的本质没区别
1,get和post都是http协议(基于tcp/ip关于数据如何在万维网中通讯的协议)中的两种请求方式
2,get和post都是tcp连接,所以他们所能做的事是一样的,get可以加request body,post可以带上URL参数,技术上是可以的
3,在万维网世界里,tcp就像是传输数据的汽车,http协议就像是交通规则
使用get的时候,要求把传输的数据放在车顶(url)以方便记录。如果是post请求,就把货物放在车厢里,但是也可以在发送get的时候将参数放在车厢里
但是大多数浏览器会限制URL的长度,不同浏览器的处理方式也不同,在发送get请求的时候有些服务器不会读取放在request body里的数据。
其他区别:
1,get 产生一个tcp数据包,POST会产生2个tcp数据包
  get请求的时候会把header和data一起发送出去
  post会先发送header,服务器响应100,浏览器再发送data,服务器响应200返回数据(并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次)
2,get的地址可以被浏览器Bookdown,参数直接暴露在地址栏,不安全,post不会
3,get的回退是无害的,post会再次发送请求
4,get请求会被浏览器主动cache,post不会,除非手动设置
5,get请求只能url编码,而post支持多种编码方式
6,get请求在url的参数会被完整的保留在浏览器的历史记录里
7,get请求在url传递的参数有长度大小的限制
8,对于参数的数据类型,get只接受ASCLL字符,post没限制
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
  • 打赏
    打赏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

以南的地方是海

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值