【HTTP】GET 和 POST 的区别

GET 和 POST 的区别

首先:

GET 和 POST 没有本质区别, 具体来说, GET 的使用场景可替换为 POST,POST 使用的场景也可以替换为 GET.

  1. 语义上的区别:

    GET 通常用来获取数据, POST 通常用来上传数据.

    现状是 GET 也经常用来上传数据, POST 也经常用来获取数据.

  2. 数据存放的位置不同:

    GET 没有 body, GET 通过 query string 向服务器传递数据,

    POST 有 body, POST 通过 body 向服务器传递数据,但是 POST 无 query string.

  3. 幂等性:

    幂等: 每次相同的输入, 得到的结果是否是确定的.

    不幂等: 每次相同的输入, 得到的输出结果是不确定的.

    GET 请求是幂等的, 而 POST 请求是不幂等的.

  4. 是否被缓存:

    缓存就是把结果记录, 所以缓存的前提就是结果是幂等的, 这样记录的结果就有用,

    下次访问时就不用再真正的访问服务器, 直接访问缓存, 节省了访问的开销.

    不是幂等的话, 记录结果是没有意义的, 所以如果不是幂等的就不应该去记录.

    因此 GET 可以被缓存, POST 不会被缓存.

注意: HTTP 标准文档中并没有限制 URL 的长度, 所以说数据的长度范围不能作为 POST 和 GET 的区别.

相关推荐
廖致君33 分钟前
C/Python/Go示例 | Socket Programing与RPC
网络协议
搬码临时工1 小时前
如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
运维·服务器·网络·tcp/ip·智能路由器·远程工作·访问公司内网
zzc9211 小时前
MATLAB仿真生成无线通信网络拓扑推理数据集
开发语言·网络·数据库·人工智能·python·深度学习·matlab
栗子叶2 小时前
两种Https正向代理的实现原理
网络协议·http·https·正向代理
jingyucsdn3 小时前
网页端 VUE+C#/FastAPI获取客户端IP和hostname
网络协议·tcp/ip·fastapi
朱包林5 小时前
day27-shell编程(自动化)
linux·运维·服务器·网络·shell脚本
SZ1701102316 小时前
IP协议 标识字段 同一个源IP、目的IP和协议号内唯一
网络·网络协议·tcp/ip
狐577 小时前
2025-06-02-IP 地址规划及案例分析
网络·网络协议·tcp/ip
黎茗Dawn7 小时前
5.子网划分及分片相关计算
网络·智能路由器
恰薯条的屑海鸥8 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
网络·学习·安全·web安全·渗透测试