HTTP状态码整理

1.HTTP状态码介绍

  HTTP状态码(HTTP Status Code)是用来表示Web服务器响应HTTP请求状态的数字代码。每当Web客户端向Web服务器发送一个HTTP请求时,Web服务器都会返回一个三位数字的状态响应代码,用来告诉Web客户端此次请求是否成功,或者是否要采用其他的动作方式。

  HTTP1.1版本中的状态码分为五大类,如下表1-1所示。

表1-1  不同范围的状态码及其对应的作用

状态码范围 作用描述
100 - 199 用于指定客户端相应的某些动作
200 - 299

用于表示请求成功

300 - 399 用于已经移动的文件,并且常被包含在定位头信息中指定新的地址信息
400 - 499  用于指定客户端的错误
500 - 599 用于指出服务器的错误

通过表1-1可以看到,HTTP响应的状态码种类很多,但在实际工作中,我们主要关注的其实也就十来条。生产场景下常见的重要状态码及其对应的作用整理如下表1-2所示。

表1-2  生产场景常见的HTTP状态码列表及其作用

状态代码及英文描述 代码描述

200 - OK

- Standard response for successful HTTP requests.

服务器成功返回网页,这是成功的http请求返回的标准状态码

301 - Moved Permanently

- This and all future requests should be directed to the given.

永久跳转,所有请求的网页将永久跳转到被设定的新位置。例如:从www.chegva.com跳转到chegva.com

403 - Forbidden

- forbidden request(matches a deny filter) => HTTP 

- The request was a legal request,but the server is refusing to respond to it.

禁止访问,这个请求是合法的,但是服务器端因为匹配了预先设置的规则而拒绝响应客户端的请求,此类问题一般为服务器权限配置不当所致

404 - Not Found

- The requested resource could not be found but may be available again in the future.

服务器找不到客户端请求的指定页面,可能是客户端请求服务器不存在的资源所导致的
499 - ClientClosed Request

    An Nginx HTTP server extension. This codeis introduced to log the case when the connection is closed by client whileHTTP server is processing its request, making server unable to send the HTTP header back

客户端或代理主动断开连接

服务器返回http头之前,客户端就提前关闭了http连接,很有可能是因为服务器端处理的时间过长,客户端不耐烦

500 - Internal Server Error

- internal error in haproxy => HTTP 500

- A generic error message,given when no more specific message is suitable.

内部服务器错误,服务器遇到了意料不到的情况,不能完成客户的请求。这是一个较为笼统的报错,一般为服务器的设置或内部程序问题所致

502 - Bad Gateway

- the server returned an invalid or incomplete response => HTTP 502

- the server was acting as a gateway or proxy and received an invalid response from the upstream server.

坏的网关,一般是代理服务器请求后端服务时,后端服务不可用或没有完成响应网关服务器。一般为代理服务器下面的节点出了问题所致

503 - Service Unavailable

- no server was available to handle the request => HTTP 503

- the server is currently unavailable(because it is overloaded or down for maintenance).

服务当前不可用,可能为服务器超载或停机维护所致,或者是代理服务器后面没有可以提供服务的节点

504 - Gateway Timeout

- the server failed to reply in time => HTTP 504

- the server was acting as a gateway or proxy and did not receive a timely response from the upstream server.

网关超时,一般是网关代理服务器请求后端服务时,后端服务没有在特定的时间内完成处理请求,一般为服务器过载所致,没有在指定的时间内返回数据给代理服务器

2.HTTP状态码的命令行查看

可以通过curl命令在Linux命令行查看HTTP响应的数字状态码,命令如下:

[root@localhost ~]# curl -I www.google.com
HTTP/1.1 200 OK    <== 200即为正常返回的标准状态码
[root@localhost ~]# curl -I -s -w %{http_code} -o /dev/null www.google.com
200
[root@localhost ~]# curl -I chegva.com
HTTP/1.1 301 Moved Permanently  <==可以看到我的网站做了301永久跳转到https://chegva.com
Location: https://chegva.com/
Connection: close
[root@localhost ~]# curl -I -s -w %{http_code} -o /dev/null chegva.com
301                       <==该网址做了跳转,返回301状态码
[root@localhost ~]# curl -I -s -w %{http_code} -o /dev/null https://chegva.com
200                       <==直接访问设置的跳转网址,返回200

                                                                   参考:跟老男孩学Linux运维web集群实战

anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/422.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注