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(删除文件)。
- HTTP/1.0:
状态管理:Cookies
由于 HTTP 是无状态的,使用 Cookies 在服务器端和客户端之间保持状态。维护“状态”的协议通常非常复杂,因为需要同步服务器和客户端的视图。 重点
- 组成部分:
- 响应报文中的
Set-cookie首部行。 - 请求报文中的
cookie首部行。 - 客户机系统中保留的 cookie 文件。
- 服务器后端的数据库。
- 响应报文中的