Http方法详解

查(Read) → GET

增(Create) → POST

改(Update) → PUT / PATCH

删(Delete) → DELETE

幂等性 :多次执行结果相同
安全性:不修改服务器状态

1. GET - 获取资源

  • 作用:从服务器获取指定资源

  • 特点:

    • 幂等(多次请求结果相同)

    • 可缓存

    • 参数暴露在 URL 中(有长度限制)

    • 无副作用(只读操作)

  • 示例 :GET /users/123 获取ID为123的用户信息


2. POST - 创建资源

  • 作用:向服务器提交数据,创建新资源

  • 特点:

    • 非幂等(多次提交会创建多个资源)

    • 数据在请求体(Body)中传输

    • 无缓存

  • 示例 :POST /users 创建新用户,数据:{"name":"张三"}


3. PUT - 全量更新

  • 作用:完整替换目标资源

  • 特点:

    • 幂等

    • 需提供资源的完整表示

    • 不存在则创建(取决于实现)

  • 示例 :PUT /users/123 替换ID为123的用户全部信息


4. PATCH - 局部更新

  • 作用:对资源进行部分修改

  • 特点:

    • 非幂等(可能,视具体实现)

    • 只发送需要修改的字段

    • 节省带宽

  • 示例 :PATCH /users/123 仅修改邮箱:{"email":"new@example.com"}

表格

对比 PUT PATCH
更新范围 完整替换 局部修改
未提供字段 被清空/设为默认值 保持不变
请求体大小 较大 较小

5. DELETE - 删除资源

  • 作用:删除指定的资源

  • 特点:

    • 幂等(删除一次和多次结果相同)

    • 不可恢复(通常)

  • 示例 :DELETE /users/123 删除ID为123的用户


6. HEAD - 获取元信息

  • 作用:与 GET 相同,但只返回响应头,不返回响应体

  • 特点:

    • 幂等

    • 用于检查资源是否存在、获取文件大小(无需下载内容)

  • 示例 :HEAD /large-file.zip 获取文件大小,判断是否需要更新


7. OPTIONS - 查询支持的方法

  • 作用:查询服务器支持的 HTTP 方法和其他选项

  • 特点:

    • 幂等

    • 常用于 CORS 预检请求

  • 示例 :OPTIONS /users 返回 Allow: GET, POST, HEAD, OPTIONS


8. TRACE - 回显测试

  • 作用:服务器将收到的请求原样返回,用于诊断

  • 特点:

    • 存在安全风险(XST 攻击),通常被禁用
  • 现状:生产环境基本禁用


9. CONNECT - 建立隧道

  • 作用:与服务器建立网络连接(主要用于 HTTPS 代理)

  • 示例 :CONNECT www.example.com:443 建立 SSL 隧道


核心属性对比

表格

方法 幂等性 安全性 可缓存 请求体
GET ✓ ✓ ✓ ✗
POST ✗ ✗ ✗ ✓
PUT ✓ ✗ ✗ ✓
PATCH ✗ ✗ ✗ ✓
DELETE ✓ ✗ ✗ ✗
HEAD ✓ ✓ ✓ ✗
OPTIONS ✓ ✓ ✗ ✗

Q:POST 和 PUT 有什么区别?

  • POST 用于创建,由服务器分配新资源 URI

  • PUT 用于创建或更新,客户端指定完整 URI

Q:PATCH 和 PUT 选哪个?

  • 修改全部字段 → PUT

  • 修改部分字段 → PATCH(更灵活、高效)

Q:GET 能传 Body 吗?

  • 语法上允许,但语义不推荐,且部分服务器/代理会忽略 GET 的 Body
相关推荐
Johny_Zhao2 小时前
FreeRADIUS + 华为AC/AP + 802.1X/WPA2-Enterprise 无线认证对接部署完整指南
网络·网络安全·信息安全·ldap·radius·huawei·系统运维·centos8
天远API3 小时前
零信任架构实战:基于天远人企关联构建自动化图谱网关
网络·人工智能·架构·自动化
vipjx15 小时前
百度网盘限速怎么破?2026实测PanDownload多线程提速方案
网络·智能路由器
码匠许师傅6 小时前
【C++三方组件】cpp-httplib:一个头文件起 HTTP 服务
开发语言·c++·http
不会就选b6 小时前
Linux之应用层协议HTTP(二)
网络·网络协议·http
hasty6 小时前
只监听本机为何仍需鉴权?Cline Hub 的 WebSocket 信任边界解析
网络·websocket·网络协议
小小小小钰儿7 小时前
1.5-Python网络编程
开发语言·网络·python·web安全·计算机·网络安全
vipjx17 小时前
2026最新PanDownload复活版评测:告别百度网盘限速实测可用
网络·智能路由器
hasty8 小时前
01_新网络安全法下的软件漏洞治理
网络·安全·web安全
j7~8 小时前
【Linux网络编程】四十七.《Linux IO 模型详解:阻塞 IO、非阻塞 IO 与 IO 多路转接(select)》
linux·运维·网络·select·非阻塞io·阻塞io·i/o多路连接