http中post和get的区别

本文详细对比了GET和POST两种HTTP请求方法的特点,包括缓存、安全性、参数传输方式及长度限制等方面,揭示了它们在实际应用中的不同场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求缓存
GET 会被浏览器主动缓存,而post则不会,除非手动设置。
收藏书签
GET产生的url地址可以被收藏,而POST不能。
保留浏览器历史记录
GET请求参数会被完整保留,而POST不能。
用处
GET 常用于取回数据,POST用于提交数据
安全性
POST比GET 安全。因为GET 的URL是可见的,可能会泄露私密信息。
请求参数
GET传输数据是通过URL请求,将请求参数放在url上,POST的参数是放在Request body里;(这不是http的要求,只是HTML标准对HTTP协议的用法的约定)
GET 只接受ASCII 码字符,而POST没有限制;
GET请求只能进行url 编码,而POST支持多种编码方式。
(get参数以filed(字段)=value的形式,置于URL后,并用"?“连接,多个请求数据之间用”&"连接。)
请求参数长度限制
浏览器GET 请求长度有限制,GET传输量小,但效率高;POST对参数长度没有限制,所以上传文件用POST。
(在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器/操作系统对URL的长度有限制)
浏览器回退
GET 请求在浏览器回退时是无害的,POST会被再次提交。
本质区别
1、http请求的底层协议是TCP/IP,所以POST和GET 请求它们本质上都是TCP连接。但是为了区分POST和GET 请求,就设置GET 请求的参数添加到url后面,POST请求参数添加到请求体中。最重要的区别是:
GET 请求只发送一个TCP数据包,浏览器会把把http header和data一起发送出去,服务器响应200(返回数据)。
POST请求发送两个数据包,浏览器会先发送header建立与服务器的连接,服务器响应100 continue,浏览器再发送data,服务器响应200(返回数据)。但是这个也不是绝对的,有的浏览器(Firefox)POST请求就发送了一次请求。
2、GET请求是幂等性的,POST请求不是。

幂等性是指对同一URL的多个请求应有同样的副作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值