关于响应信息与常见HTTP状态码
作者:互联网
当请求发送出去之后,Web服务器会返回响应信息。在响应信息中,第一行的内容是状态码和响应短语,用来表示请求的执行过程是成功还是出错。状态码和响应短语表示的内容一致,但它们的用途不同。状态码是一个数字,它只要用来向程序告知执行的结果;相对地,响应短语则是一段文字,用来向人们告知执行的结果。
状态码的第一位数字表示状态类型,第二、三位数字表示具体的情况。下表列举了各种状态码的具体意义(橘色字体的比较常见):
状态类型 | 含义 | 状态码 | 响应短语 | 含义 | 具体描述 |
---|---|---|---|---|---|
1xx | 继续执行 | 100 | 继续 | 表示服务器已收到请求的第一部分,正在等待其余部分,请求者应当继续提出请求。 | |
101 | 切换协议 | 请求者已要求服务器切换协议,服务器已确认并准备切换。 | |||
2xx | 成功 | 200 | OK | 成功 | 服务器已成功处理了请求,即服务器提供了请求的网页。 |
201 | 已创建 | 请求成功并且服务器创建了新的资源 | |||
202 | 已接受 | 服务器已接受请求但尚未处理 | |||
203 | 非授权信息 | 服务器已成功处理了请求,但返回的信息可能来自另一来源。 | |||
204 | No Content | 无内容 | 服务器成功处理了请求,但没有返回任何内容。 | ||
205 | 重置内容 | 服务器成功处理了请求,但没有返回任何内容。 | |||
206 | Partial Content | 范围请求 | 服务器成功处理了部分GET请求。 | ||
3xx | 重定向 | 300 | 多种选择 | 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。 | |
301 | Moved Permanently | 永久移动 | 请求的资源已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。(做域名跳转, 把网站从http重定向到https) | ||
302 | Found | 临时移动 | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。(临时重定向,比如未登陆的用户访问用户中心重定向到登陆页面) | ||
303 | See Other | 查看其他位置 | 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。 | ||
304 | Not Modified | 未修改 | 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。 | ||
305 | 使用代理 | 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。 | |||
307 | Temporary Redirect | 临时重定向 | 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 与 302重定向有所区别的地方在于,收到307响应码后,客户端应保持请求方法不变向新的地址发出请求。 | ||
4xx | 客户端错误 | 400 | Bad Request | 错误请求 | 服务器不理解请求的语法。 |
401 | Unauthorized | 未授权 | 请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。 | ||
403 | Forbidden | 禁止 | 服务器拒绝请求 | ||
404 | Not Found | 未找到 | 服务器找不到请求的网页 | ||
405 | 方法禁用 | 禁用请求中指定的方法。 | |||
406 | 不接受 | 无法使用请求的内容特性响应请求的网页。 | |||
407 | 需要代理授权 | 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。 | |||
408 | 请求超时 | 服务器等候请求时发生超时。 | |||
409 | 冲突 | 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。 | |||
410 | 已删除 | 如果请求的资源已永久删除,服务器就会返回此响应。 | |||
411 | 需要有效长度 | 服务器不接受不含有效内容长度标头字段的请求。 | |||
412 | 未满足前提条件 | 服务器未满足请求者在请求中设置的其中一个前提条件。 | |||
413 | 请求实体过大 | 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。 | |||
414 | 请求的 URI 过长 | 请求的 URI(通常为网址)过长,服务器无法处理。 | |||
415 | 不支持的媒体类型 | 请求的格式不受请求页面的支持。 | |||
416 | 请求范围不符合要求 | 如果页面无法提供请求的范围,则服务器会返回此状态代码。 | |||
417 | 未满足期望值 | 服务器未满足"期望"请求标头字段的要求。 | |||
5xx | 服务器错误 | 500 | Internal Server Error | 服务器内部错误 | 服务器遇到错误,无法完成请求。 |
501 | 尚未实施 | 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。 | |||
502 | 错误网关 | 服务器作为网关或代理,从上游服务器收到无效响应。 | |||
503 | Service Unavailable | 服务不可用 | 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态 | ||
504 | 网关超时 | 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 | |||
505 | HTTP 版本不受支持 | 服务器不支持请求中所用的 HTTP 协议版本。 |
返回响应信息之后,浏览器会将数据提取出来并显示在屏幕上,我们就能看到网页的样子了。如果网页的内容只有文字,那么到这里就全部处理完毕了,但如果网页中还包括图片等资源,则还有下文。
当网页中包含图片时,会在网页中响应位置嵌入表示图片文件的标签的控制信息。浏览器会在显示文字时搜索相应的标签,当遇到图片相关的标签时,会在屏幕上留出用来显示图片的空间,然后再访问Web服务器,按照标签中指定的文件名向Web服务器请求获取相应的图片并显示在预留的空间中。这个步骤和获取网页文件时一样 ,只要在URI部分写上图片的文件名并生成和发送请求信息就可以了。
由于每条请求消息中只能写1个URI,所以每次只能获取1个文件,如果需要获取多个文件,必须对每个文件单独发送1条请求。比如1个网页中包含3张图片,那么获取网页加上获取图片,一共需要向Web服务器发送4条请求。
参考书籍:
[1]. 网络是怎样连接的 (日)户根勤 著
[2]. 图解HTTP (日)上野宣 著
标签:状态,HTTP,请求,常见,响应,请求者,网页,服务器 来源: https://blog.csdn.net/m0_51660523/article/details/121848949