WWW (World Wide Web) 是基于超文本和大数据的分布式信息系统。

基本概念

  • Web 页:由多个对象(HTML 文件、图片、Java 小程序、音频等)组成。
  • URL (统一资源定位符):寻址格式为 协议://主机名:端口/路径名
  • 浏览器:Web 客户机。
  • Web 服务器:响应请求发送对象。

HTTP 协议 (超文本传送协议)

HTTP 定义了 Web 客户机如何向 Web 服务器请求 Web 页,以及服务器如何将 Web 页传送给客户机。

  • 基于 TCP协议,默认端口号为 80
  • 无状态协议:服务器不保留有关客户机过去请求的任何信息。 重点
  • 响应时间建模:往返时间 (RTT) 定义为一个短分组从客户机到服务器再返回的时间。
    • 一个 RTT 用于发起 TCP 连接。
    • 一个 RTT 用于 HTTP 请求和响应的前几个字节。
    • 总响应时间 = 2 RTT + 文档传输时间重点

HTTP 连接方式

  • 非持久 HTTP (HTTP/1.0)
    • 每个对象都需要一个新的 TCP 连接。
    • 操作系统必须为每个连接分配资源,开销大。
  • 持久 HTTP (HTTP/1.1)重点
    • 服务器在发送响应后保持连接打开。
    • 非流水线 (Non-pipelining):仅当前面的响应收到时才发出新请求。每个引用对象花费 1 RTT。
    • 流水线 (Pipelining):HTTP/1.1 的默认方式。只要遇到引用对象就立即发送请求。理想情况下,所有引用对象共花费约 1 RTT。

HTTP 报文格式

  • 请求报文:包括请求行 (Method, URL, Version)、首部行、实体主体。
  • 响应报文:包括状态行 (Version, Status Code, Phrase)、首部行、实体主体。
  • 上载表单输入
    • Post 方法:输入内容包含在实体主体中。
    • URL 方法 (GET):输入内容通过在 URL 字段后附加参数上载(如 ?monkeys&banana)。 重点
  • 方法类型
    • HTTP/1.0: GET, POST, HEAD
    • HTTP/1.1: 新增 PUT (向 URL 定义的路径上载文件), DELETE (删除文件)。

状态管理:Cookies

由于 HTTP 是无状态的,使用 Cookies 在服务器端和客户端之间保持状态。维护“状态”的协议通常非常复杂,因为需要同步服务器和客户端的视图。 重点

  • 组成部分
    1. 响应报文中的 Set-cookie 首部行。
    2. 请求报文中的 cookie 首部行。
    3. 客户机系统中保留的 cookie 文件。
    4. 服务器后端的数据库。

Web 缓存与条件 GET

  • Web 缓存 (代理服务器):代表起始服务器满足 HTTP 请求。
    • 作用:减小客户机请求的响应时间,减小机构访问链路的流量。 重点
    • 缓存命中率:缓存器的性能高度依赖于命中率。即使是中等的命中率(如 0.4)也能通过减少瓶颈链路的利用率,将总时延显著降低。
  • 条件 GET (Conditional GET)重点
    • 目的:如果缓存中有最新版本,就不重新发送该对象。
    • 方法:请求中包含 If-modified-since: <date>
    • 响应:若未修改,返回 304 Not Modified