【计算机网络】第2章:应用层—Web and HTTP
目录
一、Web 与 HTTP
二、总结
(一)Web 的定义与功能
(二)HTTP 协议的定义与功能
(三)HTTP 协议的核心机制
1. HTTP 请求与响应流程
2. HTTP 的连接类型
3. HTTP 的状态码
(四)Web 与 HTTP 的协作模型
1. 客户端-服务器架构
2. Web 服务器的组成
(五)Web 的演进与 HTTP 的发展
1. Web 的发展阶段
2. HTTP 协议的演进
(六)Web 与 HTTP 的典型应用场景
(七)总结
一、Web 与 HTTP
二、总结
(一)Web 的定义与功能
- Web(World Wide Web)
- 定义:Web 是基于超文本(Hypertext)和统一资源定位符(URL)构建的全球信息空间,由相互链接的网页、图像、脚本等数字资源组成。
- 核心特性:
- 资源对象化:每个文件(HTML 文档、图片等)视为独立对象。
- 超链接导航:通过 URL 实现跨文档跳转。
- 客户端-服务器架构:用户通过浏览器访问 Web 服务器上的资源。
- Web 的组成:
- 网页(Web Page):由 HTML 文件、图片、脚本等对象组成。
- 网站(Website):多个网页的集合,包含主页和其他子页面。
- 静态网页 vs 动态网页:
- 静态网页:固定内容,无需后台交互(如
.html
文件)。 - 动态网页:内容根据用户请求动态生成(如 PHP、JSP 页面)。
- 静态网页:固定内容,无需后台交互(如
(二)HTTP 协议的定义与功能
- HTTP(HyperText Transfer Protocol)
- 定义:HTTP 是支撑 Web 资源传输的应用层协议,定义了客户端与服务器之间的通信规则。
- 核心功能:
- 请求-响应模式:客户端发送请求,服务器返回响应。
- 支持多种方法:如
GET
、POST
、HEAD
等。 - 状态码机制:如
200 OK
、404 Not Found
等。 - 无状态协议:服务器不保存客户端的上下文信息。
- HTTP 与 Web 的协作:
- Web 的运作完全依赖 HTTP 协议传输资源。
- 例如:浏览器请求
http://example.com/index.html
时,HTTP 协议负责将 HTML 文档从服务器传输到客户端。
(三)HTTP 协议的核心机制
1. HTTP 请求与响应流程
-
请求报文结构:
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: text/html
- 请求行:包含方法(
GET
)、URL、HTTP 版本。 - 请求头:包含客户端信息(如
User-Agent
)、请求修饰符。 - 请求体:仅在
POST
方法中使用,用于传输数据。
- 响应报文结构:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Server: Apache<html>...</html>
- 状态行:包含 HTTP 版本、状态码、状态消息。
- 响应头:包含服务器信息(如
Server
)、内容类型。 - 响应体:实际返回的数据(如 HTML 页面)。
2. HTTP 的连接类型
-
非持久连接(HTTP 1.0)
- 每次请求建立一个新的 TCP 连接,请求完成后立即关闭。
- 缺点:频繁的 TCP 握手和挥手导致高延迟。
-
持久连接(HTTP 1.1 默认)
- 多个请求/响应复用同一个 TCP 连接。
- 优化方式:
- 流水线(Pipelining):允许客户端连续发送多个请求,服务器按序响应。
- 分块传输编码(Chunked Transfer Encoding):允许流式传输内容,无需预先知道总长度。
3. HTTP 的状态码
类别 | 示例 | 说明 |
---|---|---|
1xx(信息) | 100 Continue | 请求已接收,继续发送数据。 |
2xx(成功) | 200 OK | 请求成功,返回数据。 |
3xx(重定向) | 301 Moved Permanently | 资源已永久移动到新位置。 |
4xx(客户端错误) | 404 Not Found | 请求的资源不存在。 |
5xx(服务器错误) | 500 Internal Server Error | 服务器内部错误。 |
(四)Web 与 HTTP 的协作模型
1. 客户端-服务器架构
- 客户端:用户使用的设备(如浏览器),发送 HTTP 请求。
- 服务器:存储和处理数据的远程计算机,接收请求并返回响应。
- 通信协议:HTTP 使用 TCP 作为传输层协议,确保可靠传输。
2. Web 服务器的组成
- 监听组件:监听指定端口(如 80)的 HTTP 请求。
- 请求解析器:解析请求方法、URL、请求头和请求体。
- 处理逻辑:调用应用程序、数据库或其他资源生成响应。
- 响应生成器:构建 HTTP 响应(状态码、响应头、响应体)。
- 连接管理:管理 TCP 连接(持久连接、关闭策略)。
(五)Web 的演进与 HTTP 的发展
1. Web 的发展阶段
- Web 1.0:静态网页,单向信息传递(用户只能读取内容)。
- Web 2.0:动态网页,用户交互增强(如微博、相册)。
- Web 3.0:语义网,数据互联与智能化(通过元数据实现机器理解内容)。
2. HTTP 协议的演进
- HTTP/1.0:非持久连接,简单但效率低。
- HTTP/1.1:默认持久连接,引入分块传输和流水线。
- HTTP/2:多路复用(Multiplexing),减少延迟。
- HTTP/3:基于 QUIC 协议,进一步优化传输效率。
(六)Web 与 HTTP 的典型应用场景
- 网页浏览:浏览器通过 HTTP 请求加载 HTML、CSS、JavaScript 等资源。
- API 接口调用:后端服务通过 HTTP 提供 RESTful API,供前端或移动端调用。
- 实时通信:结合 WebSocket 协议,实现双向实时通信(如在线聊天)。
- 安全通信:通过 HTTPS(HTTP + TLS/SSL)加密传输数据,保障隐私和完整性。
(七)总结
对比项 | Web | HTTP |
---|---|---|
定义 | 全球信息空间,基于超文本和 URL 构建 | 应用层协议,用于传输 Web 资源 |
核心功能 | 提供信息组织与交互的平台 | 定义客户端与服务器之间的通信规则 |
依赖关系 | 依赖 HTTP 协议传输资源 | 为 Web 提供传输机制 |
无状态特性 | 无状态(需通过 Cookie 或 Token 维持会话) | 无状态(每次请求独立) |
演进方向 | 从静态内容到语义网、去中心化 | 从 HTTP/1.0 到 HTTP/3,优化性能与安全性 |