4.5说说HTTP常见的状态码有哪些,适用场景? 答:一、状态码是什么 HTTP状态码(英语: HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代 码 它由RFC 2616规范定义的,并得到RFC 2518、RFC 2817、 RFC 2295、RFC 2774与REC 4918等 规范扩展 简单来讲,http 状态码的作用是服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服 务器的运行状态 二、分类 状态码第一位数字决定了不同的响应状态,有如下: 1表示消息 2表示成功 3表示重定向 .4表示请求错误 5表示服务器错误 1xx 代表请求已被接受,需要继续处理。这类响应是临时前应,只包含状态行和某些可选的应头信息,井 以空行结束 常见的有: .1000 (客户嘴继续发送清求这是临时响2 :这个临时脑应是用来通规资户储家的服分有成口包 被服务器接收,且仍未被拒绝。 客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须 请求完成后向客户端发送一个最终响应 . 101:服务器根据客户端的请求切换协议, 办议。 主要用于websocket或http2升级 2xx 代表请求已成功被服务器接收、理解、并接受 常见的有: ●200 (成功) :请求已成功,请求所希望的响应头或数据体将随此响应返回 ●201(已创建):请求成功并且服务器创建了新的资源 ●202 (已创建) 服务器已经接收请求,但尚未处理 ●203 (非授权信息) :服务器已成功处理请求,但返回的信息可能来自另一来源 ●204 (无内容) :服务器成功处理请求,但没有返回任何内容 205 (重置内容) :服务器成功处理请求, 但没有返回任何内容 206 (部分内容) :服务器成功处理 了部分请求 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向 常见的有: 300 (多种选择) :针对请求, 服务器可执行多种操作。服务器可根据请求者(user agent) 选择一 项操作,或提供操作列表供请求者选择 ●301 (永久移动) :请求的网页已永久移动到新位置。 服务器返回此响应(对GET或HEAD请求 的响应)时,会自动将请求者转到新位置 302(临时移动):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行 以后的请求 ●303 (查看其他位置) :请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回 此代码 ●305 (使用代理) :请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求 者应使用代理 ●307 (临时重定向) :服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进 行以后的请求 4xx 代表了客户端看起来可能发生了错误,妨碍了服务器的处理 常见的有: ●400 (错误请求) :服务器不理解请求的语法 401 (未授权) :请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。 403 (禁止) :服务器拒绝请求 . 404 (未找到) :服务器找不到请求的网页 ●405 (方法禁用) :禁用请求中指定的方法 406 (不接受) :无法使用请 求的内容特性响应请求的网页 407 (需要代理授权) :此状态代码与 401 (未授权) 类似,但指定请求者应当授权使用代理 。408 (请求超时) :服务器等候请求时发生超时 5xx
表示服务器无法完成明显有效的请求。 这类状态码代表了服务 虽在处理请求的过程中有错误或者异常状 态发生 常见的有: .500 (服务器内部错误) :服务器遇到错误,无法完成请求 。507 (尚木实施) :服务器不具备完成请求的功能。例如,服务器无法识别蒲求方法时可能会返回 此代码 502 (错误网关) :服务器作为网关或代理, 从上游服务器收到无效响应 503 (服务不可用) 服务器目前无法使用(由于超载或停机维护) 504 (网关超时) :服务器作为网关或代理, 但是没有及时从上游服务器收到请求 505 (HTTP 版本不受支持) :服务器不支持 请求中所用的HTTP协议版本 三、适用场景 下面给出一-些状态码的适用场景: ●100:客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如 果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。常用于POST大数据传输 ●206: 一般用来做断点续传,或者是视频文件等大文件的加载 . 301:永久重定向会缓存。新域名替换旧域名,旧的域名不再使用时,用户访问旧域名时用301就 重定向到新的域名 302:临时重定向不会缓存,常用于未登陆的用户访问用户中心重定向到登录页面 304:协商缓存,告诉客户端有缓存,直接使用缓存中的数据,返回页面的只有头部信息,是没有 内容部分 ●400: 参数有误,请求无法被服务器识别 。403: 告诉客户端进制访问该站点或者资源,如在外网环境下,然后访间只有内网P才能访问的时 候则返回 .404: 服务器找不到资源时, 或者服务器拒绝请求又不想说明理由时 . 503:服务器停机维护时,主动用50 03响应请求或nginx设置限速,超过限速,会返回503 , 504:网关超时
|