Http方法详解

张开发
2026/4/10 22:27:30 15 分钟阅读

分享文章

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:newexample.com}表格对比PUTPATCH更新范围完整替换局部修改未提供字段被清空/设为默认值保持不变请求体大小较大较小5. DELETE - 删除资源作用删除指定的资源特点幂等删除一次和多次结果相同不可恢复通常示例DELETE /users/123删除ID为123的用户6. HEAD - 获取元信息作用与 GET 相同但只返回响应头不返回响应体特点幂等用于检查资源是否存在、获取文件大小无需下载内容示例HEAD /large-file.zip获取文件大小判断是否需要更新7. OPTIONS - 查询支持的方法作用查询服务器支持的 HTTP 方法和其他选项特点幂等常用于 CORS 预检请求示例OPTIONS /users返回Allow: GET, POST, HEAD, OPTIONS8. TRACE - 回显测试作用服务器将收到的请求原样返回用于诊断特点存在安全风险XST 攻击通常被禁用现状生产环境基本禁用9. CONNECT - 建立隧道作用与服务器建立网络连接主要用于 HTTPS 代理示例CONNECT www.example.com:443建立 SSL 隧道核心属性对比表格方法幂等性安全性可缓存请求体GET✓✓✓✗POST✗✗✗✓PUT✓✗✗✓PATCH✗✗✗✓DELETE✓✗✗✗HEAD✓✓✓✗OPTIONS✓✓✗✗QPOST 和 PUT 有什么区别POST 用于创建由服务器分配新资源 URIPUT 用于创建或更新客户端指定完整 URIQPATCH 和 PUT 选哪个修改全部字段 → PUT修改部分字段 → PATCH更灵活、高效QGET 能传 Body 吗语法上允许但语义不推荐且部分服务器/代理会忽略 GET 的 Body

更多文章