报文结构、请求方法和HTTP状态码详解
一、报文结构

二、请求方法
HTTP请求的本质是对服务器资源进行操作的过程(增删改查+系统功能),通过定义不同方法实现不同操作是清晰并且必要的。
| 请求方法 | 详解 |
|---|
| GET | 最常用的方法,常用于请求服务器发送某个资源 |
| HEAD | 和GET类型,但服务器在响应中只返回首部 |
| POST | 向服务器写入数据 |
| TRACE | 观察请求报文发送到服务器的最终样子 |
| PUT | 和GET相反,向服务器写入资源 |
| DELETE | 请求 服务器删除请求URL所制定的资源 |
| OPTIONS | ...... |
- 幂等操作:任意多次执行所产生的影响均与一次执行的影响相同
- 幂等函数:幂等函数是指可以使用相同参数重复执行,并获得相同结果的函数
三、HTTP状态码
| 状态码 | 含义 |
|---|
| 200~299 | 成功状态码 |
| 300~399 | 重定向状态码 |
| 400~499 | 客户端错误状态码 |
| 500~599 | 服务端错误状态码 |
- 200:OK,请求没问题,实体的主体部分包含了所请求的资源
- 204:No Content,响应报文只包含了若干头部和一个状态码,但没有实体的主体部分
- 304:Not Modified,所请求的资源未修改,服务器返回此状态码时,不会返回任何资源(直接从本地获取资源)
- 400:Bad Request,客户端请求的语法错误,服务器无法理解
- 401:Unauthorized,请求客户端在获取对资源的访问权之前,对自己进行认证
- 403:Forbidden,请求被服务器拒绝了(鉴权失败)
- 404:Not Found,用于说明服务器无法找到所请求的URL
- 500:Internal Server Error,服务器内部错误,无法完成请求
- 502:Bad Gateway,作为网关或者代理工作的服务器尝试执行请求时,从远处服务器接收到一个无效的响应
- 503:Service Unavailable,用来说明服务器现在无法为该请求提供服务
- 504:Gateway Timeout,网关或代理的服务器,未及时从远端服务器获取请求