Get和Post两种请求的区别

本文详细探讨了HTTP中Get和Post请求的区别,包括它们在URL显示、浏览器回退、数据编码、参数保存、数据大小限制等方面的不同。此外,还深入解析了TCP层面,指出Get请求一次完成,而Post请求可能涉及两次TCP数据包交换。这一理解有助于开发者更好地掌握这两种请求的使用场景。
摘要由CSDN通过智能技术生成

基础:

Get产生的URL地址可以被当做书签收藏起来(BookMark),Post不可以;
Get在浏览器回退的时候是无害的,从缓存中取,Post会再次提交请求;
Get只能进行url编码,Post支持多种编码方式;
Get请求参数能完整地被记录在浏览器历史里,Post参数不会被保留;
Get在url中传送的参数长度有限制(小于2kb),Post没有;
参数的数据类型,Get只接受ASCII字符,Post没有限制;
Get参数通过url传递,Post放在Request body中;

进阶:

Get和Post只是TCP/IP的两种请求规则,是HTTP协议规定的,但底层还是TCP/IP,因此我们完全可以在Get里添加Request body数据,也可以把Post中的数据写在url上,只不过服务器可能对这种特殊的情况不处理。

重大区别:

Get产生一个TCP数据包,Post产生两个TCP数据包。
对于Get请求,浏览器会把http header和data一起发送出去,服务器响应200返回数据;
对于Post请求,浏览器先发送header,服务器响应100 continue,浏览器在发送data,服务器响应200返回数据。
简单的说,即Get请求一趟完成,Post两趟完成(当然也有例外,火狐)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值