可能大家经常会见到404not found,无法找到指定位置的资源,其实404是http请求状态码的一种。
那么http状态码是什么呢?它是怎么产生的呢?
定义
每一个http响应都会带有一个http状态码用来表示http服务器的响应状态。
http所有状态码的第一个数字代表了响应的状态,1:消息,2:成功,3:重定向,4:请求错误,客户端有误,5、6:服务器错误。
产生
当浏览者访问一个网页时,浏览者的浏览器会向网页所在的服务器发出请求,当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含http状态码的信息头用以响应浏览器的请求。
上面只是简单地说了一下,那么现在我就和大家详细的聊一聊404以及他的兄弟们吧。
1xx:消息
请求已被接受,需要继续处理。
此类状态码,只在某些试验条件下使用,其他时候服务器是禁止向此类客户端发送1xx状态码,因此大家做以了解即可。
100:初始请求已接受,客户应继续发送请求;(Continue)
101:服务器遵循客户请求转换到另一协议;(Switching Protocols)
102:由WebDAV(RFC 2518)扩展的状态码,处理将被继续执行。(Processing)
2xx:成功
请求已成功被服务器接收、理解并处理。
200:一切正常,对get和post请求的应答文档紧跟其后;(Ok)成功
201:服务器已经创建了文档,location头给出了它的url;(Created)(已创建)
202:服务器已经接受请求,但是处理尚未完成;(Accepted)(已接受)
203:服务器成功处理了请求,但返回的信息可能来自另一个来源;(Non-Authoritative Information)(未授权信息)
204:服务器成功处理了请求,但没有返回任何内容,当前页面文档视图不会有变化;(No Content)(无内容)
205:服务器成功处理了请求,但没有返回任何内容,强制浏览器清除表单输入内容,重置显示内容,当前页面文档视图会发生变化;(Reset Content)(重置内容)
206:服务器成功处理了部分get请求;(Partial Content)(部分内容)
207:由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。(Multi-Status)
3xx:重定向
客户端需要进一步操作才可以完成请求,用来重定向,后续的请求地址在本次响应的location域中指明。
300: 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。(Multiple Choices)(多种选择)
301 : 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。(Moved Permanently)(永久移动)
302 : 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。(Move temporarily)(临时移动)
303 : 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。(See Other)(查看其他位置)
304 :自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。(Not Modified)(未修改)
305 :请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。(Use Proxy)(使用代理)
306:最新版本不使用。
307 : 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。(Temporary Redirect)(临时重定向)
4xx:请求错误
客户端可能发生了错误,妨碍了服务器处理。
400 : 服务器不理解请求的语法。(错误请求)
401 : 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。(未授权)
403 : 服务器拒绝请求。(禁止)
404 : 服务器找不到请求的网页。(未找到)
405 : 禁用请求中指定的方法。(方法禁用)
406 : 无法使用请求的内容特性响应请求的网页。(不接受)
407 : 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。(需要代理授权)
408 :服务器等候请求时发生超时。(请求超时)
409 : 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。(冲突)
410 : 如果请求的资源已永久删除,服务器就会返回此响应。(已删除)
411 : 服务器不接受不含有效内容长度标头字段的请求。(需要有效长度)
412::服务器未满足请求者在请求中设置的其中一个前提条件。(未满足前提条件)
413 : 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。(请求实体过大)
414 : 请求的 URI(通常为网址)过长,服务器无法处理。(请求的 URI 过长)
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 (未满足期望值) 服务器未满足"期望"请求标头字段的要求。
5xx、6xx:服务器错误
服务器在尝试处理请求时发生内部错误。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
比较常用的我已经用大红色进行了标记。
看了这么多,那么http状态码可以用来干什么呢?
主要作用就是服务器告诉客户端当前网页请求发生了什么,用来判断和分析当前web服务器的运行状况。
可能大家经常会见到404not found,无法找到指定位置的资源,其实404是http请求状态码的一种。
那么http状态码是什么呢?它是怎么产生的呢?
定义
每一个http响应都会带有一个http状态码用来表示http服务器的响应状态。
http所有状态码的第一个数字代表了响应的状态,1:消息,2:成功,3:重定向,4:请求错误,客户端有误,5、6:服务器错误。
产生
当浏览者访问一个网页时,浏览者的浏览器会向网页所在的服务器发出请求,当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含http状态码的信息头用以响应浏览器的请求。
上面只是简单地说了一下,那么现在我就和大家详细的聊一聊404以及他的兄弟们吧。
1xx:消息
请求已被接受,需要继续处理。
此类状态码,只在某些试验条件下使用,其他时候服务器是禁止向此类客户端发送1xx状态码,因此大家做以了解即可。
100:初始请求已接受,客户应继续发送请求;(Continue)
101:服务器遵循客户请求转换到另一协议;(Switching Protocols)
102:由WebDAV(RFC 2518)扩展的状态码,处理将被继续执行。(Processing)
2xx:成功
请求已成功被服务器接收、理解并处理。
200:一切正常,对get和post请求的应答文档紧跟其后;(Ok)成功
201:服务器已经创建了文档,location头给出了它的url;(Created)(已创建)
202:服务器已经接受请求,但是处理尚未完成;(Accepted)(已接受)
203:服务器成功处理了请求,但返回的信息可能来自另一个来源;(Non-Authoritative Information)(未授权信息)
204:服务器成功处理了请求,但没有返回任何内容,当前页面文档视图不会有变化;(No Content)(无内容)
205:服务器成功处理了请求,但没有返回任何内容,强制浏览器清除表单输入内容,重置显示内容,当前页面文档视图会发生变化;(Reset Content)(重置内容)
206:服务器成功处理了部分get请求;(Partial Content)(部分内容)
207:由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。(Multi-Status)
3xx:重定向
客户端需要进一步操作才可以完成请求,用来重定向,后续的请求地址在本次响应的location域中指明。
300: 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。(Multiple Choices)(多种选择)
301 : 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。(Moved Permanently)(永久移动)
302 : 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。(Move temporarily)(临时移动)
303 : 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。(See Other)(查看其他位置)
304 :自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。(Not Modified)(未修改)
305 :请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。(Use Proxy)(使用代理)
306:最新版本不使用。
307 : 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。(Temporary Redirect)(临时重定向)
4xx:请求错误
客户端可能发生了错误,妨碍了服务器处理。
400 : 服务器不理解请求的语法。(错误请求)
401 : 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。(未授权)
403 : 服务器拒绝请求。(禁止)
404 : 服务器找不到请求的网页。(未找到)
405 : 禁用请求中指定的方法。(方法禁用)
406 : 无法使用请求的内容特性响应请求的网页。(不接受)
407 : 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。(需要代理授权)
408 :服务器等候请求时发生超时。(请求超时)
409 : 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。(冲突)
410 : 如果请求的资源已永久删除,服务器就会返回此响应。(已删除)
411 : 服务器不接受不含有效内容长度标头字段的请求。(需要有效长度)
412::服务器未满足请求者在请求中设置的其中一个前提条件。(未满足前提条件)
413 : 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。(请求实体过大)
414 : 请求的 URI(通常为网址)过长,服务器无法处理。(请求的 URI 过长)
415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417 (未满足期望值) 服务器未满足"期望"请求标头字段的要求。
5xx、6xx:服务器错误
服务器在尝试处理请求时发生内部错误。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
比较常用的我已经用大红色进行了标记。
看了这么多,那么http状态码可以用来干什么呢?
主要作用就是服务器告诉客户端当前网页请求发生了什么,用来判断和分析当前web服务器的运行状况。