计算机网络--HTTP 协议的请求方式 GET 和 POST

HTTP 协议的常见的请求方式 GET 和 POST,在实际使用中会考虑到底使用哪一种,这就涉及了两者的区别比较。

主要区别其实就是安全性和幂等性。

所谓安全性,就是通过请求服务端之后获取到数据,会不会造成数据的改变,部分数据的泄露。

所谓幂等性,就是多次请求到的数据是否相同,是否有变化,有点像MySQL的并发下出现的重复读问题。

GET 在语义上是从服务器获取数据,比如用户信息,图片,视频。比如说搜索视频,分页查询数据等。

POST 在语义上是通过请求体对数据进行修改,比如增删改。

参数位置不同

GET 请求的参数是放在URL上的,通常接问号后面,比如 ?id=10086,很明显,参数是直接显示在了外面,所以某些不能泄露的数据就不能使用这个请求,比如密码,密钥等。

POST 请求的参数是放在请求体中的,也就是body中,拼接好请求头之后通过 TCP 协议传输给服务器。

请求的长度限制

主要因素还是参数的位置不同,GET 是加在 URL 后面的,请求长度会被浏览器和web服务器限制,通常 URL 的长度限制在 几千字符以内。

POST 请求是将参数放在请求体中,所以不受限制,理论上是可以无限添加,实际受限于服务器的配置和内存。

安全性和幂等性

GET 请求因为把参数放在 URL 上,有泄露风险,但是它只会获取到数据,不会对数据进行修改,所以GET 在安全上有风险,但是幂等性的。

POST 请求因为是把参数放在请求体中的,相较于GET 来说是安全的,但不是绝对安全的,还需要进行加密,比如使用 HTTPS 协议。因为 POST 请求一般是对数据进行修改,所以没有幂等性,每次获取的数据都不同。

缓存

因为幂等性,GET 请求可以被缓存的,浏览器可以对其添加书签,下次打开这个页面仍然是开始的模样。

而 POST 不会缓存,因为 POST 的请求体每次都不同,也就是表单每次都不同。所以一般也不能做书签。通常你在没有提交表单的时候浏览器会提醒你表单没有保存,是否确认退出,就是这个原因。

相关推荐
小洁忘了怎么分身10 小时前
多样本空间转录组 Harmony 整合与标签转移指南
网络·r语言·生信分析
三言老师12 小时前
CentOS8 Firewalld 高级规则中级实操教程
linux·运维·服务器·网络·centos
rcms1527026921813 小时前
TEL 3308-000065-13 印刷电路板
网络
xywww16813 小时前
Claude Opus 5 企业使用怎么选:场景分层、成本测算和接入风险清单
网络
望安认证14 小时前
CRA 与 CE、RED、EUCC、NIS2、GDPR、AI Act、Data Act、DORA 等欧盟法规的关系:从法案结构看数字产品出海合规
网络·欧盟·cra·网络弹性法案·cra认证
Hrain-AI14 小时前
2026企业AI Agent本地化落地:6平台横评+搭建步骤+成本模板
服务器·网络·人工智能
便利店102415 小时前
企业远程办公如何打通内网?网络层隧道与封装直觉
运维·服务器·网络·vpn·隧道
00后程序员张16 小时前
抓包鹰 电脑本机网络连接表怎么看?哪些程序在联网 进程归属与可疑 IP 追溯
网络协议·计算机网络·网络安全·ios·adb·https·udp
砚凝霜16 小时前
软考网络工程师|第 6 章 网络安全基础、攻击、等保完整备考笔记
网络·笔记·web安全
运维行者_16 小时前
网络监控与ITSM集成:从告警到工单,实现运维自动化闭环
开发语言·网络·分布式·后端·架构·flask·php