【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 的区别.

相关推荐
IT大白鼠4 小时前
MSF二次开发与自定义模块编写
网络·安全·web安全·msf
Julien20045 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
kekekzt6 小时前
TCP协议的粘包问题介绍,IP分片,MTU,MSS,滑动窗口的概念及之间的关系
网络·网络协议·tcp/ip
mooooooooooye8 小时前
2026 年跨平台 SSH 客户端怎么选?Xterminal、Termius、MobaXterm 谁更合适
服务器·网络·ssh
Blockchina9 小时前
Codex 实战:从一句需求到可验收的 Linux 主机巡检脚本
运维·服务器·网络
江安下小雨11 小时前
muduo网络库(十六):新增连接池模块
网络·c++
aiot1891893521811 小时前
机场候机大厅高空场景技术红线!蓝牙AOA不能做手机导航??!!
大数据·网络·人工智能·蓝牙aoa
从入门到退休11 小时前
企业远程控制选型:向日葵SDK vs RustDesk自建,谁是更务实的选择?
运维·服务器·网络·远程工作·远程控制
Learn-Share_HY12 小时前
[IT Network]如何配置反向路徑過濾器(rp_filter),以解決路由不對稱問題?
linux·嵌入式硬件·物联网·网络协议·tcp/ip·http·iot
fb_1234512 小时前
网络技术基础
网络