这里有一份简洁的前端知识体系等待你查收,看看吧,会有惊喜哦~如果觉得不错,恳求star哈~
客户端与服务端的通信,无非是客户端下达命令,服务端返回结果的过程。
客户端如何给服务端下达命令了,这就要了解的HTTP方法。
服务端如何告知客户端结果了,这就要谈谈状态码。
HTTP方法
客户端向服务端请求资源时,是可以指定请求的资源按何种方式返回。这就是HTTP方法的职责,常见的HTTP方法如下:
| 方法 | 说明 | 支持的HTTP协议版本 |
|---|---|---|
| GET | 获取资源 | 1.0、1.1 |
| POST | 传输实体主体 | 1.0、1.1 |
| PUT | 传输文件 | 1.0、1.1 |
| HEAD | 获得报文首部 | 1.0、1.1 |
| DELETE | 删除文件 | 1.0、1.1 |
| OPTIONS | 询问支持的方法 | 1.1 |
| TRACE | 追踪路径 | 1.1 |
| CONNECT | 要求用隧道协议连接代理 | 1.1 |
状态码
状态码的职责,是当客户端向服务端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务端是正常处理了请求,还是出现了错误。
状态码由3位数字和原因短语组成。
数字中的第一位指定了响应类别,响应类别有以下5种:
| 类别 | 原因短语 | |
|---|---|---|
| 1XX | 信息性状态码 | 接收的请求正在处理 |
| 2XX | 成功状态码 | 请求正常处理完毕 |
| 3XX | 重定向状态码 | 需要进行附加操作以完成请求 |
| 4XX | 客户端错误状态码 | 服务端无法处理请求 |
| 5XX | 服务器错误状态码 | 服务器处理请求出错 |
状态码种类繁多,常用的只有14个,以下一一介绍。
2XX 成功
| 含义 | 备注 | |
|---|---|---|
| 200 OK | 请求已正常处理 | |
| 204 No Content | 请求处理成功,但没有资源可返回 | 一般在只需要从客户端往服务器发生信息,而对客户端不需要发送新信息的情况下使用 |
| 206 Partial Content | 客户端进行了范围请求,响应报文中包含由Content-Range指定范围的实体内容 |
3XX 重定向
3XX响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。
| 含义 | 备注 | |
|---|---|---|
| 301 Moved Permanently | 永久性重定向 | |
| 302 Found | 临时重定向 | |
| 303 See Other | 规定使用GET方法定向获取请求资源 | 与302状态码有相同的功能,但303状态码明确表示客户端应当采用GET方式获取资源 |
| 304 Not Modified | 资源已找到,但未符合条件请求 | 304跟重定向没有关系 |
4XX 客户端错误
4XX的响应结果表明客户端是发生错误的原因所在。
| 含义 | 备注 | |
|---|---|---|
| 400 Bad Request | 请求报文有语法错误 | |
| 401 Unauthorized | 发送的请求需要有通过HTTP认证的认证信息 | |
| 403 Forbidden | 请求被服务器拒绝 | |
| 404 Not Found | 服务器上没有请求资源 | 服务器拒绝请求且不想说明理由时也会使用404 |
5XX服务器错误
表明服务器本身发生错误。
| 含义 | 备注 | |
|---|---|---|
| 500 Internal Server Error | 服务端执行请求时发生了错误 | 也可能是Web应用存在bug或某些临时故障 |
| 503 Server Unavailable | 服务器宕机 |