目录

  • 一、2XX (Success 成功状态码)
    • 1. 200 OK
    • 2. 204 No Content
    • 3. 206 Partial Content
  • 二、 3XX (Redirection 重定向状态码)
    • 1. 301 Moved Permanently
    • 2. 302 Found
    • 3. 303 See Other
    • 4. 304 Not Modified
    • 5. 307 Temporary Redirect
  • 三、 4XX (Client Error 客户端错误状态码)
    • 1. 400 Bad Request
    • 2. 401 Unauthorized
    • 3. 403 Forbidden
    • 4. 404 Not Found
    • 5. 405 Method Not Allowed
  • 四、5XX (Server Error 服务器错误状态码)
    • 1. 500 Internal Server Error
    • 2. 502 Bad Gateway
    • 3. 503 Service Unavailable
    • 4. 504 Gateway Timeout

状态码的类别:

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

下面列举一下常用的HTTP状态码及使用场景。

一、2XX (Success 成功状态码)

状态码2XX表示请求被正常处理了。

1. 200 OK

200 OK表示客户端发来的请求被服务器端正常处理了。

2. 204 No Content

该状态码表示客户端发送的请求已经在服务器端正常处理了,但是没有返回的内容,响应报文中不包含实体的主体部分。

一般在只需要从客户端往服务器端发送信息,而服务器端不需要往客户端发送内容时使用。

3. 206 Partial Content

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

二、 3XX (Redirection 重定向状态码)

3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。

1. 301 Moved Permanently

永久重定向。

该状态码表示请求的资源已经被分配了新的 URI,以后应使用资源指定的 URI。新的 URI 会在 HTTP 响应头中的 Location 首部字段指定。

若用户已经把原来的URI保存为书签,此时会按照 Location 中新的URI重新保存该书签。

同时,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。

使用场景:

  • 当我们想换个域名,旧的域名不再使用时,用户访问旧域名时用301就重定向到新的域名。其实也是告诉搜索引擎收录的域名需要对新的域名进行收录。
  • 在搜索引擎的搜索结果中出现了不带www的域名,而带www的域名却没有收录,这个时候可以用301重定向来告诉搜索引擎我们目标的域名是哪一个。

2. 302 Found

临时重定向。

该状态码表示请求的资源被分配到了新的 URI,希望用户(本次)能使用新的 URI 访问资源。

和 301 Moved Permanently 状态码相似,但是 302 代表的资源不是被永久重定向,只是临时性质的。也就是说已移动的资源对应的 URI 将来还有可能发生改变。

若用户把 URI 保存成书签,但不会像 301 状态码出现时那样去更新书签,而是仍旧保留返回 302 状态码的页面对应的 URI。

同时,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。

使用场景:

  • 当我们在做活动时,登录到首页自动重定向,进入活动页面。
  • 未登陆的用户访问用户中心重定向到登录页面。
  • 访问404页面重新定向到首页。

3. 303 See Other

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

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

303 状态码通常作为 PUT 或 POST 操作的返回结果,它表示重定向链接指向的不是新上传的资源,而是另外一个页面,比如消息确认页面或上传进度页面。而请求重定向页面的方法要总是使用 GET。

注意:

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

4. 304 Not Modified

浏览器缓存相关。

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

带条件的请求(Http 条件请求):使用 Get方法 请求,请求报文中包含(if-matchif-none-matchif-modified-sinceif-unmodified-sinceif-range)中任意首部。

状态码304并不是一种错误,而是告诉客户端有缓存,直接使用缓存中的数据。返回页面的只有头部信息,是没有内容部分的,这样在一定程度上提高了网页的性能。

5. 307 Temporary Redirect

临时重定向。

该状态码与 302 Found 有着相同含义,尽管 302 标准禁止 POST 变成 GET,但是实际使用时还是这样做了。

307 会遵守浏览器标准,不会从 POST 变成 GET。但是对于处理请求的行为时,不同浏览器还是会出现不同的情况。规范要求浏览器继续向 Location 的地址 POST 内容。规范要求浏览器继续向 Location 的地址 POST 内容。

三、 4XX (Client Error 客户端错误状态码)

4XX 的响应结果表明客户端是发生错误的原因所在。

1. 400 Bad Request

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

2. 401 Unauthorized

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

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

以下情况会出现401:

  • 401.1 - 登录失败。
  • 401.2 - 服务器配置导致登录失败。
  • 401.3 - 由于 ACL 对资源的限制而未获得授权。
  • 401.4 - 筛选器授权失败。
  • 401.5 - ISAPI/CGI 应用程序授权失败。
  • 401.7 - 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。

3. 403 Forbidden

该状态码表明请求资源的访问被服务器拒绝了,服务器端没有必要给出详细理由,但是可以在响应报文实体的主体中进行说明。进入该状态后,不能再继续进行验证。该访问是永久禁止的,并且与应用逻辑密切相关。

IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因:

  • 403.1 - 执行访问被禁止。
  • 403.2 - 读访问被禁止。
  • 403.3 - 写访问被禁止。
  • 403.4 - 要求 SSL。
  • 403.5 - 要求 SSL 128。
  • 403.6 - IP 地址被拒绝。
  • 403.7 - 要求客户端证书。
  • 403.8 - 站点访问被拒绝。
  • 403.9 - 用户数过多。
  • 403.10 - 配置无效。
  • 403.11 - 密码更改。
  • 403.12 - 拒绝访问映射表。
  • 403.13 - 客户端证书被吊销。
  • 403.14 - 拒绝目录列表。
  • 403.15 - 超出客户端访问许可。
  • 403.16 - 客户端证书不受信任或无效。
  • 403.17 - 客户端证书已过期或尚未生效
  • 403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。
  • 403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。
  • 403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。

4. 404 Not Found

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

以下情况会出现404:

  • 404.0 -(无) – 没有找到文件或目录。
  • 404.1 - 无法在所请求的端口上访问 Web 站点。
  • 404.2 - Web 服务扩展锁定策略阻止本请求。
  • 404.3 - MIME 映射策略阻止本请求。

5. 405 Method Not Allowed

该状态码表示客户端请求的方法虽然能被服务器识别,但是服务器禁止使用该方法。

GET 和 HEAD 方法,服务器应该总是允许客户端进行访问。

客户端可以通过 OPTIONS 方法(预检)来查看服务器允许的访问方法, 如下

Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE

四、5XX (Server Error 服务器错误状态码)

5XX 的响应结果表明服务器本身发生错误.

1. 500 Internal Server Error

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

2. 502 Bad Gateway

该状态码表明扮演网关或代理角色的服务器,从上游服务器中接收到的响应是无效的

注意,502 错误通常不是客户端能够修复的,而是需要由途经的 Web 服务器或者代理服务器对其进行修复

以下情况会出现502:

  • 502.1 - CGI (通用网关接口)应用程序超时。
  • 502.2 - CGI (通用网关接口)应用程序出错。

3. 503 Service Unavailable

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

使用场景:

  • 服务器停机维护时,主动用503响应请求;
  • nginx 设置限速,超过限速,会返回503。

4. 504 Gateway Timeout

该状态码表示网关或者代理的服务器无法在规定的时间内获得想要的响应。他是HTTP 1.1中新加入的。

使用场景:代码执行时间超时,或者发生了死循环。

常见的HTTP状态码及应用场景相关推荐

  1. HTTP 常见的状态码及适用场景

    一.是什么 HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码 它由 RFC 2616规范定义的,并得到 RFC 2518.RFC 281 ...

  2. 常见的http状态码(Http Status Code)

    常见的http状态码:(收藏学习) 2**开头 (请求成功)表示成功处理了请求的状态代码. 200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201 (已创建) 请求成 ...

  3. 常见的http状态码总结。

    常见的http状态码: 1XX系列:指定客户端应相应的某些动作,代表请求已被接受,需要继续处理.由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客 ...

  4. 【SRH】------常见的HTTP状态码

    常见的HTTP状态码 100 - 继续.客户端应继续其请求 200 - 请求成功 301 - 永久重定向 资源(网页等)被永久转移到其它URL 302 - 临时重定向 304 - 从缓存中读取数据 4 ...

  5. 生产环境常见的HTTP状态码列表

    生产环境常见的HTTP状态码列表(List of HTTP status codes)为: 200 - OK,服务器成功返回网页 - Standard response for successful ...

  6. apache和mysql 403_如何使用mysql(lamp)分离环境搭建dedecms织梦网站及apache服务器常见的403http状态码及其解决方法...

    一.实验环境 centos6.5+mysql5.5.32+php5.3.27 软件:DedeCMS-V5.7-GBK-SP1 本实验是使用lamp环境搭建,但mysql数据库与之分离,本实验成功的关键 ...

  7. http状态码_一些常见的HTTP状态码

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! ☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 来源:Linux公社 链接 ...

  8. 常见的HTPP状态码

    常见的HTPP状态码 状态 含义 200 (OK)- 表示服务器已经成功接受请求,并将返回客户端所请求的最终结果 400 (Bad Request)- 糟糕的请求.语义有误,当前请求无法被服务器理解 ...

  9. 常见的HTTP状态码(HTTP Status Code)说明

    作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手.好了,下面就让我们来了解一下比较常见的HTTP状态 ...

最新文章

  1. 关于 free 命令显示内存使用情况问题
  2. 洛谷——P1287 盒子与球
  3. 【备忘】mysql优化工具
  4. Java学习笔记【2】:抛出异常
  5. mac环境下Android 反编译
  6. 计算机启动灯光提示,为什么我的电脑开机时指示灯为黄色并不断闪烁,且开不开机?...
  7. js:常用的3种弹出提示框(alert、confirm、prompt)
  8. 操作系统-速记版(个人幕布导出)
  9. [RK3568 Android11] 开发之调试RK809 codec音频-MIC
  10. uni-app 中文档阅读倒计时
  11. 真的不能错过的打印攻略!打印一张7分钱
  12. 阅读和了解什么是形式化方法?
  13. 社保包括哪些保险?社保和五险一金有什么区别?
  14. html如何让图片边缘模糊化,如何淡化图片周围区域?照片四周虚化怎么弄|最好的照片处理软件...
  15. Spark 的三种join方式
  16. php 仿微信朋友圈,HTML5仿微信聊天界面和朋友圈代码
  17. stm32f030烧录一次程序就不能检测到解决方法
  18. 计算机网络 华南理工大学期末重点 第四章 网络层 谢希仁
  19. python挖掘chinaz长尾词脚本代码分享
  20. ctfshow 密码挑战

热门文章

  1. 在一架天车中,透视5G时代的钢铁智变
  2. 高通最新处理器指定三星为唯一制造商
  3. Lightroom Classic 教程:如何在 Lightroom 中修复曝光过度的照片?
  4. 一名95后域名投资人从一穷二白到月入过万的历程
  5. 并发500,2000次请求,从10s到300ms的接口优化,我做了哪些事
  6. NOIP2018普及组复赛——T3摆渡车
  7. React实现动态展示柱状图
  8. IT项目风险管理案例和应对之道
  9. Word怎么撤销上一步操作
  10. overleaf 插入图片_overleaf编辑器——插入图片 以及 引用bibtex