HTTP协议状态码是Web服务器用来告诉客户端请求的处理结果的一种机制,每当用户在浏览器中输入网址并按下回车键,浏览器就会向服务器发送一个HTTP请求,然后服务器返回一个HTTP响应,其中包含一个状态码,用以表示请求的处理情况,这些状态码分为五大类:信息响应(100-199)、成功响应(200-299)、重定向消息(300-399)、客户端错误(400-499)和服务器错误(500-599)。
信息响应 (100-199)
这类状态码代表请求已被服务器接收,需要客户端继续操作。
100 Continue:客户端应当继续发送请求,这个状态码主要用在客户端和服务器之间协商通信速度比较慢的环境下,客户端在发送完请求头之后,如果收到100 Continue的响应,则可以开始发送请求体。
101 Switching Protocols:服务器已经理解了客户端的请求,并将通过Upgrade消息头通知客户端采用不同的协议来完成这个请求。
成功响应 (200-299)
表示请求已成功处理。
200 OK:请求成功,请求所希望的响应头或数据体将随此响应返回,出现此状态码是表示正常访问。
201 Created:请求成功并且服务器创建了新的资源。
204 No Content:服务器成功处理了请求,但没有返回任何内容。
重定向消息 (300-399)
表示要完成请求,需要进一步操作,通常这些状态码用来重新导向,浏览器会自动进行下一步动作。
301 Moved Permanently:被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。
302 Found:请求的资源现在临时从不同的URI响应请求。
307 Temporary Redirect:请求的资源临时从不同的URI响应请求,但将来可能会恢复到原URI。
客户端错误 (400-499)
表示客户端似乎有错误,妨碍了服务器的处理。
400 Bad Request:服务器无法理解请求的语法。
401 Unauthorized:当前请求需要用户验证,该响应必须包含一个适用于被请求资源的WWW-Authenticate信息头用以询问用户信息。
403 Forbidden:服务器拒绝请求。
404 Not Found:服务器无法根据客户端的请求找到资源(网页)。
服务器错误 (500-599)
表示服务器在尝试处理请求时发生内部错误,这些错误并非客户端所能控制的。
500 Internal Server Error:服务器内部错误,无法完成请求。
502 Bad Gateway:作为网关或代理角色的服务器,从上游服务器收到了一个无效的响应。
503 Service Unavailable:由于临时的服务器维护或者过载,服务器当前无法处理请求。
相关问题与解答
Q1: HTTP状态码301和302有什么区别?
A1: HTTP状态码301表示资源永久移动到了新的地址,而302表示资源临时移动到了新的地址,浏览器在遇到301响应时,会将资源的新地址保存在缓存中,下次请求直接访问新地址;而对于302响应,浏览器不会修改缓存中的地址,下次依然会请求老地址。
Q2: 当用户在浏览器中输入一个不存在的网址,会发生什么?
A2: 当用户输入一个不存在的网址时,服务器通常会返回404 Not Found状态码,表示请求的资源在服务器上未找到,浏览器会显示一个错误页面,告知用户所请求的页面不存在。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/285136.html