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没限制
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值