HTTP常见返回码(如:301,400,503)

时间:2024-03-24 15:49:23

前言

对于前端工程师来说,每天都在和HTTP协议打交道,但是我真的懂HTTP协议吗?并没有,那么不如就现在开始了解吧。

1、HTTP协议的主要特点

  1. 简单快速:每个资源是固定的,所以简单
  2. 灵活:每个头部指明了数据类型
  3. 无状态:每次连接都是一个新的链接,服务端不会记住连接的身份
  4. 无链接: 连接一次就会断开

2、报文构成

HTTP报文大致可分为报文首部和报文主题两块。两者由最初出现的空行(CR+LF)来划分。报文主体并不是必须的。

HTTP常见返回码(如:301,400,503)

1、请求报文

HTTP常见返回码(如:301,400,503)

部分 功能
请求行 请求方法、URI、HTTP版本
请求头 key:value的键值对
空行 传输资源
请求体 传输资源

HTTP常见返回码(如:301,400,503)

2、响应报文

HTTP常见返回码(如:301,400,503)

部分 功能
状态行 响应结果的状态码、原因短语、HTTP版本
响应头 传输资源
空行 传输资源
响应体 传输资源

HTTP常见返回码(如:301,400,503)

常用内容编码:gzip,comparess,deflate,

3、HTTP方法

方法名 功能
GET 获取资源
POST 传输资源
PUT 更新资源
DELETE 删除资源
HEAD 获取头部信息

4、跨域预检

5、HTTP状态码及其作用

1、状态码大类说明

状态码 作用 详细说明
1xx Informational(指示信息) 表示请求已接收,继续处理
2xx Success(请求成功) 表示请求已被成功接收
3xx Redirection(重定向) 完成请求,必须进行更进一步的操作
4xx Client Error(客户端错误) 请求有语法错误或者请求无法实现
5xx Server Error(服务端错误) 服务器处理请求出错

2、常见的14种状态码举例(共有60+种)

HTTP CODE 2xx

状态码:200 ok

含义:客户端请求成功


状态码:204 No Content

含义:请求处理成功,但没有资源科返回。204不允许返回任何实体的主体


状态码:206 Partial Content

含义:客户发送了一个带有Range头的GET请求,服务器完成了它。使用video去播放视频,返回206,说明视频范围


HTTP CODE 3xx

状态码:301 Moved Permanently

含义:永久重定向。该状态吗表示请求的资源已被分配了新的URI,以后应按 Location 首部字段提示的 URI 重新保存。


状态码:302 Found

含义:和 301 Moved Permanently 状态码相似,但 302 状态码代表的资源不是被永久移动,只是临时性质的。


状态码:303 See Other

含义:303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确表示客户端应当采用 GET 方法获取资源。


状态码:304 Not Modified

含义:

1、304 虽然被划分在 3XX 类别中,但是和重定向没有关系。

2、资源已找到,但未符合条件请求。

条件请求是啥:

采用 GET方法的请求报文中包含 If-MatchIf-ModifiedSinceIf-None-MatchIf-RangeIf-Unmodified-Since
中任一首部。


HTTP CODE 4xx

状态码:400 Bad Request

含义:请求报文中存在语法错误。当错误发生是,需要修改请求的内容后再次发送请求。

另外,浏览器会像200 OK一样对待该状态码。


状态码:401 Unauthorized

含义:返回含有 401 的响应必须包含一个适用于被请求资源的 WWW-Authenticate
首部用以质询(challenge)用户信息。当浏览器初次接收到 401 响应,会弹出认证用的对话窗口。


状态码:403 Forbidden

含义:该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要给出拒绝的详细理由。

未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源 IP 地址试图访问)等列举的情况都可能是发生 403 的原因。


状态码:404 Not Found

含义:该状态吗表明服务器上无法找到请求的资源。


HTTP CODE 5xx

状态码:500 Intertnal Server Error

含义:服务器本身发生错误。也有可能是 Web应用存在的 bug 或某些临时的故障


状态码:503 Intertnal Server Error

含义:该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。


参考文献:

图解HTTP