WEB 开发同学一看 get 和 post 请求方法的区别,第一感觉都是 So easy!
学习ajax、fetch、axios时,发送网络请求携带参数时,都需要分别处理get和post的参数。所以我们需要学习get和post的区别,以便更好地进行前后端数据交互。get 和 post 区别你到底知道多少呢?
GET | POST | |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
书签 | 可收藏为书签 | 不可收藏为书签 |
缓存 | 能被缓存 | 不能缓存 |
编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 |
历史 | 参数保留在浏览器历史中。 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 | 无限制。 |
对数据类型的限制 | 只允许 ASCII 字符。 | 没有限制。也允许二进制数据。 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET ! | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。 |
可见性 | 数据在 URL 中对所有人都是可见的。 | 数据不会显示在 URL 中。 |
2.1http协议
浏览器和服务器之间是通过http协议进行数据通信的,而get和post是http协议其中的两个方法。想要更多了解http协议,请点击《网络请求详解》。
http协议底层是 TCP/IP ,把TCP比作汽车,用TCP给浏览器和服务器之间运输数据,它很可靠,从不会发生数据丢失现象,但是如果路上跑的全是一模一样的TCP车辆,那这个世界就非常混乱,整个系统就会瘫痪。为了避免这种情况发生,http 定义了交通规则,给汽车运输设定了好几个服务类别,有 GET、 POST、 PUT、 DELETE 等等。它们的作用分别为:
当执行GET请求时,汽车贴上get标签,而且要求把货物放到车顶(url)方便记录,当执行POST请求时,贴上post标签,将货物放置车厢内(body)。
2.2、为什么说 get 比 post 更快?
get 产生一个TCP数据包,而 post 产生两个数据包。
get 发送数据的时候,url把header和data数据带着一起传送到服务器,然后返回结果。但是 post 会先发送 header 到服务器,服务器响应 100 之后,继续向浏览器发送data,服务器接收完之后,会验证数据完整性,然后返回结果。
post 要比 get 多进行一次数据传输,所以 get 比post更快。好多人想着,为了提升网站速度,把所有post改成get方式,这样合适吗?
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有