HTTP协议--请求方法
HTTP协议--请求方法
RFC
RFC(Request for Comments)是互联网技术标准的 正式文档,由 IETF(互联网工程任务组)发布。它定义了协议、规范的最佳实践,并被广泛采纳为事实标准。其中HTTP/1.1 标准由 RFC 7230-7235 系列定义,接下来的HTTP请求基于RFC定义
为什么要提RFC呢,因为HTTP请求方法的实现有很多部分没有强制,但是业界广泛遵循RFC标准,接下来探讨方法的性质都必须建立在RFC标准上
HTTP Request Methods
HTTP 请求方法(HTTP Methods)定义了客户端希望服务器对指定资源执行的操作。
GET
语义: 获取资源(只读操作)
GET请求默认不带有body,如果使用可能被浏览器抛弃,服务器可能忽略
GET 请求通过 查询参数(Query Parameters)传递数据,参数以 ?key=value 形式附加在 URL 末尾,多个参数用 & 分隔.例如?page=2&id=1
特点:
- 安全:不应该修改服务器状态(只是一种约定,具体要看服务端的实现)
- 幂等:多次请求结果相同
- 可缓存:响应可被浏览器或代理缓存
POST
语义:提交数据(通常用于创建资源或触发非幂等操作)。
特点:
- 不安全:会修改服务器状态(如新增订单)。
- 非幂等:多次请求可能产生不同结果(如重复提交订单)。
- 不可缓存:默认不缓存。
PUT
语义:替换或创建资源(完整更新)。
特点:
- 不安全:修改服务器状态
- 幂等:多次请求结果相同(如重复 PUT 会覆盖同一资源)。
- 需指定完整资源数据(缺失字段可能被清空)。
DELETE
语义:删除资源 特点:
- 不安全:修改服务器状态
- 幂等:删除同一资源多次结果相同(如资源不存在时仍返回成功)。
PATCH
语义:部分更新资源(RFC 5789 定义)
特点:
- 不安全:修改服务器状态。
- 幂等性取决于实现:若更新逻辑是幂等的(如设置某字段为固定值),则幂等。
- 只需传递需修改的字段。
Head
语义:获取资源的元数据(与 GET 相同但不返回响应体)。
特点:
- 安全:不修改服务器状态
- 幂等:多次请求结果相同。
- 用于检查资源是否存在或验证缓存有效性。
应用场景
- 获取资源的 Last-Modified 或 ETag 头。
- 测试链接有效性(如预检资源大小)。
OPTIONS
语义:获取服务器支持的 HTTP 方法或跨域(CORS)配置。
特点:
- 安全:不修改服务器状态。
- 幂等:多次请求结果相同。
应用场景:
- CORS 预检请求(检查跨域权限)。
- 查询服务器对某资源支持的方法(响应头 Allow: GET, POST)。
This post is licensed under CC BY 4.0 by the author.