专栏首页FECoding《图解HTTP》梳理(二)

《图解HTTP》梳理(二)

第四章 返回结果的 HTTP 状态码

  • 状态码类别

类别

原因短语

1XX

Informational(信息性状态码)

接收的请求正在处理

2XX

Success(成功状态码)

请求正常处理完毕

3XX

Redirection(重定向状态码)

需要进行附加操作以完成请求

4XX

Client Error(客户端错误状态码)

服务器无法处理请求

5XX

Server Error(服务器错误状态码)

服务器处理请求出错

  • 代表性状态码
    • 200 OK
    • 204 No Content:一般在只需要从客户端往服务器发送信息,而对客户端不需要发送新信息内容的情况下使用
    • 206 Partial Content:响应报文中包含由 Content-Range 指定范围的实体内容
    • 301 Moved Permanently:永久性重定向。请求的资源已被分配了新的 URI
    • 302 Found:临时性重定向。希望用户本次能使用新的 URI 访问
    • 303 See Other:该状态码和 302 有着相同功能,但是 303 明确表示客户端应当采用 GET 方法获取资源
    • 备注:301、302、303 响应码返回时,几乎所有的浏览器都会把 POST 改为 GET,并删除请求报文内的主体,之后请求会自动再次发送。
    • 304 Not Modified:客户端发送附带条件的请求(采用 GET 方法的请求报文中包含 If-Match/If-Modified-Since/If-None-Match/If-Range/If-Unmoodified-Since 中任一首部)时,服务器允许请求访问资源,但未满足条件的情况。304 返回时不包含任何响应的主体部分。304 与重定向无关系。
    • 307 Temporary Redirect:临时重定向。与 302 含义相同。302 标准禁止将 POST 变换成 GET,但是使用时大家并不遵守。而 307 会遵守浏览器标准,不会将 POST 变为 GET。
    • 400 Bad Request:报文中存在语法错误,浏览器无法理解,但会像对待 200 OK 一样对待该状态码。
    • 401 Unauthorized:发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。此外,如果之前已经进行过 1 次请求,则表示用户认证失败。返回 401 的响应必须包含一个适用于被请求资源的 WWW-Authenticate 首部用以质询用户信息。当浏览器初次接收到 401 响应,会弹出认证用的对话窗口。
    • 403 Forbidden:服务器拒绝访问,原因可能是未获得文件系统的访问授权,访问权限出现某些问题等。
    • 404 Not Found:服务器上无法找到请求的资源,也可以在服务器端拒绝请求且不想说明理由时使用。
    • 500 Internal Server Error:服务器端执行请求时发生错误。
    • 503 Service Unavailable:服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
  • 注:不少返回的状态码响应都是错的,比如 Web 应用程序内部发生错误,状态码依然返回 200 OK。

第五章 与 HTTP 协作的 Web 服务器

  • 相同的 IP 地址下,虚拟主机可以寄存多个不同主机名和域名的 Web 网站。发送 HTTP 请求时,必须在 Host 首部内完整指定主机名或域名的 URI。
  • HTTP 通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,如代理、网关和隧道。
    • 代理:一种具有转发功能的应用程序;不改变请求 URI;每次通过代理服务器转发请求或者响应时,会追加写入 Via 首部信息(Via: proxy 2, proxy1);代理可级联;
      • 使用代理服务器的理由包括:
        • 利用缓存技术减少网络带宽的流量。
        • 组织内部针对特定网站的访问控制
        • 以获取日志为主要目的
      • 代理有多种使用方法,按两种基准分类:一种时是否使用缓存,另一种是是否会修改报文
        • 缓存代理:代理转发响应时,缓存代理(Caching Proxy)会预先将资源的副本(缓存)保存在代理服务器上
        • 透明代理:转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理(Transparent Proxy),反之为非透明代理
    • 网关:转发其他服务器通信数据的服务器。接收从客户端发送来的请求时,其就像自己拥有资源的源服务器一样对请求进行处理;利用网关可以由 HTTP 请求转化为其他协议通信;网关可以提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全;网关可以连接数据库,使用 SQL 语句查询数据
    • 隧道:在相隔很远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序;可使用 SSL 等加密手段

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [译][草案] HTTP “带外”内容编码

    本文档描述了一种超文本传输协议(HTTP)的内容编码,其可用于描述包含有效负载的辅助资源的位置。

    逆葵
  • 《图解 HTTP》 梳理(一)

    Content-Type: multipart/form-data; boundary=AaB03x --AaB03x Content-Di...

    逆葵
  • 深入 Babel 6 loose 模式

    Babel 的 loose 模式将 ES6 代码转译成 ES5 代码,loose 模式是不太忠实于 ES6 语义的。这篇文章解释了它是怎么工作的以及它的优点与缺...

    逆葵
  • HTTP协议简介

    用户1205080
  • HTTP协议基础浅谈

    HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。是从万维网服务器传输超文本到本地浏览器的传送协议。

    吾非同
  • Python爬虫HTPP请求方法有哪些

    POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

    砸漏
  • http状态码一览表

    http状态码一览表 1**:请求收到,继续处理 2**:操作成功收到,分析、接受 3**:完成此请求必须进一步处理 4**:请求包含一个错误语法或不能完成 5...

    joshua317
  • 浅析海量用户的分布式系统设计(1)

    为什么海量的用户访问,会让一个服务器端系统变得更复杂?本文就是想从最基本的地方开始,探寻服务器端系统技术的基础概念。

    韩伟
  • HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端

    契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做;

    noteless
  • 超文本传输协议(HTTP)介绍

    超文本传输协议(HyperText Transfer Protocol,HTTP)是从服务器传输数据到客户端的传输协议。

    Joel

扫码关注云+社区

领取腾讯云代金券