【计算机网络基础】返回结果的HTTP状态码分别代表什么意思?

返回结果的HTTP状态码分别代表什么意思?

本篇博客总结自《图解HTTP》,内容没有复制粘贴,纯手打(也为了自己记的更牢)

文章目录

  • 返回结果的HTTP状态码分别代表什么意思?
    • 状态码类别
    • 2xx成功
      • 200 OK
      • 204 No Content
      • 206 Partial Content
    • 3xx重定向
      • 301 Moved Permanently
      • 302 Found
      • 303 See Other
      • 304 Not Modified
      • 307 Temporary Redirect
    • 4xx 客户端错误
      • 400 Bad Request
      • 401 Unauthorized
      • 403 Forbidden
      • 404 Not Found
    • 5xx服务器错误
      • 500 Internal Server Error
      • 503 Service Unavailable

HTTP状态码负责表示客户端HTTP请求的返回结果,标记服务器端的处理是否正常,通知出现的错误等工作。

状态码类别

类别 原因短语
1xx Informational(信息性状态码) 接收的请求正在处理
2xx Success(成功状态码) 接收请求正常处理完毕
3xx Radirection(重定向状态码) 需要进行附加操作以完成请求
4xx Client Error(客户端错误状态码) 服务器无法处理请求
5xx Server Error(服务器错误状态码) 服务器处理请求出错

只要遵守状态码类别的定义,几十改变RFC2616种定义的状态码,或服务器自行创建状态码都没问题。

状态码的种类多达60多种
其中包括:

  • RFC2616
  • RFC4918,5842和附加HTTP状态码(RFC6585)

RFC是一系列以编号排定的文件。文件收集了有关互联网相关信息,
接下来我介绍一下常用的也最具有代表性的14种状态码


2xx成功

200 OK

表示从客户端发来的请求再服务端被正常处理了

204 No Content

该状态码代表服务器接收的请求已成功处理,但在返回的响应报文种,不含实体部分,另外也不允许返回任何实体的主题
比如:当从浏览器发出请求处理之后,返回204响应,那么浏览器显示的页面不发生更新
一般只需要从客户端往服务器发送信息,而对客户端不需要发送新内容的情况下使用

206 Partial Content

该状态码表示客户端进行了范围请求,而服务器成功的执行了这部分的GET请求,响应报文种包含由Content-Range指定范围的实体部分


3xx重定向

301 Moved Permanently

永久性重定向,该状态码表示请求的资源已被分配了新的URL,以后应使用资源现在所指的URI

302 Found

临时性重定向,该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问

303 See Other

该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求资源

当 301、302、303 响应状态码返回时,几乎所有的浏览器都会把 POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次 发送。
301、302 标准是禁止将 POST 方法改变成 GET 方法的,但实际使 用时大家都会这么做

304 Not Modified

该状态码表示客户端发送附带条件的请求 时,服务器端允许请求访 问资源,但未满足条件的情况。304 状态码返回时,不包含任何响应 的主体部分。304 虽然被划分在 3XX 类别中,但是和重定向没有关 系。

307 Temporary Redirect

临时重定向。该状态码与 302 Found 有着相同的含义。尽管 302 标准

禁止 POST 变换成 GET,但实际使用时大家并不遵守。 307 会遵照浏览器标准,不会从 POST 变成 GET。但是,对于处理响 应时的行为,每种浏览器有可能出现不同的情况。


4xx 客户端错误

400 Bad Request

该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求 的内容后再次发送请求。另外,浏览器会像 200 OK 一样对待该状态 码。

401 Unauthorized

该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、 DIGEST 认证)的认证信息。另外若之前已进行过 1 次请求,则表示 用 户认证失败。

403 Forbidden

该状态码表明对请求资源的访问被服务器拒绝了。服务器端没有必要 给出拒绝的详细理由,但如果想作说明的话,可以在实体的主体部分对原因进行描述,这样就能让用户看到了。
未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发 送源 IP 地址试图访问)等列举的情况都可能是发生 403 的原因。

404 Not Found

该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服 务器端拒绝请求且不想说明理由时使用。


5xx服务器错误

500 Internal Server Error

该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web 应用存在的 bug 或某些临时的故障

503 Service Unavailable

该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法 处理请求。如果事先得知解除以上状况需要的时间,最好写入 RetryAfter 首部字段再返回给客户端。

状态码和状况的不一致
不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。 比如 Web 应用程序内部发生错误,状态码依然返回 200 OK,这种 情况也经常遇到。

你可能感兴趣的:(计算机网络基础)