vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > http get post put delete

详解HTTP4种方法(GET、POST、 PUT和DELETE)

作者:Cyan_Jiang

本文介绍了HTTP协议中的四种方法:GET、POST、PUT和DELETE,分别用于不同的操作,GET用于获取数据,POST用于提交数据,PUT用于创建或更新资源,DELETE用于删除资源,每种方法都有其特点和适用场景,了解这些方法有助于更好地进行数据交互和开发,感兴趣的朋友一起看看吧

一、GET 和 POST

1. GET方法

特点

http://example.com/page?name=John&age=30

优点

缺点

2. POST方法

特点

POST /form HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
name=John&age=30

优点

缺点

3. 总结对比

属性GETPOST
用途获取数据提交数据
参数传递URL查询字符串请求体(Body)
安全性参数明文暴露,不适合敏感数据参数隐藏,但需要HTTPS保护
数据大小受URL长度限制无明显限制
幂等性幂等非幂等
缓存可缓存不可缓存
可见性参数可见参数不可见

选择方法

二、PUT 和 DELETE

PUTDELETE 是HTTP协议中的两种方法,主要用于对资源执行修改和删除操作。它们和 GETPOST 一样,都是定义在HTTP/1.1中的基本方法,常用于RESTful API中。

1. PUT 方法

特点

示例

场景:创建或更新用户信息。

请求:

PUT /users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 47
{
  "username": "johndoe",
  "email": "john@example.com"
}

响应:

2. DELETE 方法

特点

示例

场景:删除用户信息。

请求

DELETE /users/123 HTTP/1.1
Host: example.com

响应

3. PUT 和 DELETE 的区别

属性PUTDELETE
用途创建或更新资源删除资源
幂等性幂等幂等
请求体包含资源数据,用于创建或更新通常不需要请求体
响应状态码200 OK(更新成功),201 Created(创建成功)200 OK204 No Content,或 404 Not Found
对服务器的影响写操作(新增或覆盖资源)删除操作

4. PUT 和 POST 的对比

5. RESTful API 实践建议

三、总结

1. GET (读取数据)

GET /users/123 HTTP/1.1

2. POST (创建数据)

POST /users HTTP/1.1
Content-Type: application/json
{
  "username": "johndoe",
  "email": "john@example.com"
}

3. PUT (创建或更新数据)

PUT /users/123 HTTP/1.1
Content-Type: application/json
{
  "username": "newname",
  "email": "new@example.com"
}

4. DELETE (删除数据)

DELETE /users/123 HTTP/1.1

总结对比表

方法作用请求体幂等性适用场景
GET查询数据获取数据,例如用户信息。
POST创建资源创建新资源,例如新增用户。
PUT更新(或创建)资源有(完整资源数据)更新或替换资源,例如修改用户。
DELETE删除资源无(一般)删除指定资源,例如删除用户。

简单来说:

四、HTTP状态码合集

状态码编码描述
1xx 信息性响应
100Continue继续,客户端应继续其请求
101Switching Protocols服务器正在切换协议
102Processing服务器已收到请求,但尚未处理完成(WebDAV)
103Early Hints预加载资源的早期提示
2xx 成功响应
200OK请求成功
201Created请求成功并创建了资源
202Accepted请求已接受,但尚未处理完成
203Non-Authoritative Information请求成功,但返回的内容可能来自第三方
204No Content请求成功,但没有返回内容
205Reset Content请求成功,客户端应重置文档视图
206Partial Content服务器成功处理了部分请求(断点续传)
207Multi-Status返回多个状态码(WebDAV)
208Already Reported资源已被报告(WebDAV)
226IM Used服务器已完成 GET 请求,并使用了实例操作
3xx 重定向
300Multiple Choices请求有多个可能的响应
301Moved Permanently资源已永久移动
302Found资源暂时移动(以前叫“Moved Temporarily”)
303See Other资源可在另一个 URL 获取
304Not Modified资源未修改,可使用缓存
305Use Proxy必须通过代理访问(已废弃)
306Switch Proxy该状态码已被废弃
307Temporary Redirect临时重定向,请求方法不变
308Permanent Redirect永久重定向,请求方法不变
4xx 客户端错误
400Bad Request客户端请求格式错误
401Unauthorized需要身份验证
402Payment Required预留状态码,未广泛使用
403Forbidden服务器拒绝请求
404Not Found请求的资源不存在
405Method Not Allowed请求方法被禁止
406Not Acceptable服务器无法满足请求的内容格式
407Proxy Authentication Required需要代理身份验证
408Request Timeout请求超时
409Conflict资源冲突(例如并发修改)
410Gone资源已永久删除
411Length Required需要指定 Content-Length
412Precondition Failed请求头条件失败
413Payload Too Large请求体过大,服务器无法处理
414URI Too Long请求的 URI 过长
415Unsupported Media Type不支持的媒体类型
416Range Not Satisfiable请求的范围无效
417Expectation Failed服务器无法满足 Expect 头的要求
418I’m a teapot传统愚人节彩蛋,表示“我是一个茶壶”
421Misdirected Request请求被发送到错误的服务器
422Unprocessable Entity请求格式正确,但无法处理(WebDAV)
423Locked资源被锁定(WebDAV)
424Failed Dependency依赖的请求失败(WebDAV)
425Too Early服务器拒绝处理可能被重放的请求
426Upgrade Required需要升级协议
428Precondition Required需要前置条件
429Too Many Requests客户端发送的请求过多(限流)
431Request Header Fields Too Large请求头字段太大
451Unavailable For Legal Reasons由于法律原因不可用
5xx 服务器错误
500Internal Server Error服务器内部错误
501Not Implemented服务器不支持该请求
502Bad Gateway服务器作为网关时,收到无效响应
503Service Unavailable服务器暂时不可用(过载或维护)
504Gateway Timeout服务器作为网关时,未及时收到上游服务器响应
505HTTP Version Not Supported服务器不支持该 HTTP 版本
506Variant Also Negotiates服务器内部配置错误
507Insufficient Storage服务器存储空间不足(WebDAV)
508Loop Detected服务器检测到无限循环(WebDAV)
510Not Extended服务器需要扩展请求
511Network Authentication Required需要网络身份验证

这个表格已经经过核对,符合最新的 HTTP 标准。

到此这篇关于HTTP4种方法(GET、POST、 PUT和DELETE)的文章就介绍到这了,更多相关http get post put delete内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文