HTTP 请求报文 方法

HTTP 请求报文 中,方法(Method) 是用来说明客户端希望对服务器资源执行的操作。它出现在 HTTP 报文的第一行,称为 请求行,格式如下:

复制代码
METHOD  Request-URI  HTTP-Version

例如:

复制代码
GET /index.html HTTP/1.1

✅ 常见 HTTP 方法详解

方法名 含义 是否有请求体 是否幂等 常见用途
GET 获取资源 ✅ 是 浏览网页、获取数据
POST 提交资源(如表单) ✅ 是 ❌ 否 登录、注册、上传数据
PUT 更新资源(整体替换) ✅ 是 ✅ 是 修改整个用户信息等
DELETE 删除资源 否(可选体) ✅ 是 删除记录、数据等
HEAD 获取响应头,不返回内容体 ✅ 是 检查资源是否存在
OPTIONS 询问支持的方法 ✅ 是 CORS 预检、功能探测
PATCH 局部更新资源 ✅ 是 ✅ 有争议(大多数认为是) 局部修改用户资料等
TRACE 回显请求报文 ✅ 是 调试用,不常见
CONNECT 用于建立隧道(如 HTTPS) ❌ 否 HTTPS代理

"幂等(Idempotent)"


✅ 一句话定义:

幂等操作 :无论执行一次还是执行多次,其对系统的最终影响是一样的。


🎯 通俗解释

你可以把"幂等"理解为:

  • "我重复点多少次这个按钮,最终结果都一样。"

🔍 方法详解

1. GET

  • 用途:获取资源。

  • 特点

    • 参数通过 URL 传递(?key=value)
    • 不应产生副作用(不修改资源)
    • 不能带请求体

2. POST

  • 用途:向服务器提交数据。

  • 特点

    • 请求体中包含数据(如表单、JSON)
    • 常用于登录、注册、上传
    • 不幂等,连续发送多次会产生多次影响

3. PUT

  • 用途:更新(替换)指定资源。

  • 特点

    • 是幂等的:多次调用效果一样
    • 请求体中包含完整的新资源
    • 常用于 REST API 中修改资源

4. DELETE

  • 用途:删除资源。

  • 特点

    • 通常是幂等的:删除一次和多次一样
    • 不一定有请求体

5. HEAD

  • 与 GET 类似,但不返回响应体,只返回响应头。

  • 常用于:

    • 测试资源是否存在
    • 检查资源是否被修改(配合 ETag

6. OPTIONS

  • 查看服务器允许的 HTTP 方法。
  • 用于跨域请求的预检请求(preflight)

返回响应头如:

复制代码
Allow: GET, POST, OPTIONS

7. PATCH

  • 与 PUT 不同,它是部分更新资源。
  • 用于只修改一个字段或局部数据。
  • 示例:只更新用户名,而不提交整个用户对象。

🚨 幂等性说明

  • 幂等:调用一次与多次效果一致(无副作用)
  • 非幂等:多次调用可能产生不同影响
方法 幂等性
GET ✅ 幂等
PUT ✅ 幂等
DELETE ✅ 幂等
POST ❌ 非幂等
PATCH ✅ 通常认为是

🧾 示例:完整 HTTP 请求报文

复制代码
POST /api/login HTTP/1.1
Host: www.example.com
Content-Type: application/json
Content-Length: 38

{
  "username": "admin",
  "password": "123456"
}

如你还想看某个方法的具体交互过程(如 OPTIONS 的跨域示例、PATCH 的 JSON格式)或使用工具如 curlPostman 测试,我可以继续讲解。需要吗?

相关推荐
郝学胜-神的一滴8 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
绵绵细雨中的乡音8 小时前
深入理解 ET 与 LT 模式及其在 Reactor 模型中的应用
服务器·网络·php
吠品9 小时前
企业信任基石OV SSL证书
网络协议·https·ssl
暖馒9 小时前
Modbus应用层协议的深度剖析
网络·网络协议·c#·wpf·智能硬件
开源技术11 小时前
DNS详解——域名是如何解析的
http
yunfuuwqi11 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
迎仔11 小时前
C-算力中心网络隔离实施方法:怎么搞?
运维·网络
代码游侠11 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
枷锁—sha12 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Zach_yuan12 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++