# 应用层协议原理
# 网络应用的架构
客户端 / 服务器(Client/Server,C/S)
服务器:
-
总是打开
-
拥有一个固定的地址
-
缩放的数据中心
客户端:
- 与服务器通信
- 可能是间歇性连接
- 可能有动态的 IP 地址
- 客户端之间不能相互通信
对等网(Peer-to-Peer,P2P)
- 不一定总在线
- 结点之间可以直接通信
- 结点的地址以及他们之间的连接可能随时发生变化
- 任何一方既提供服务又享受服务,自扩展:新的节点带来新的服务能力,同时也带来新的服务需求
- 节点之间是间歇性连接、地址也是变化的
- 管理非常复杂
混合体系结构: C/S+P2P
# 安全性
-
TCP/UDP 天生不具备安全性
-
安全套接字层 SSL
- 提供加密的 TCP 连接
- 数据的完整性检查
- 端点身份鉴别
- SSL 位于应用层与 TCP 之间
# WEB 和 HTTP
# WEB 的构成
WEB 属于 C/S 模式
WEB 服务器:IIS、Apache、TomCat……
浏览器:IE、Maxthon、Firefox
协议
- 信息表达的协议 ——HTML
- 信息传输的协议 ——HTTP
# HTTP
# 客户端 / 服务器模式
客户端: 浏览器请求、接收、展示 Web 对象
服务器: Web 服务器发送对象对请求进行响应
# TCP 传输服务
客户端启动 TCP 连接 (创建套接字) 到服务器,端口 80
服务器接受来自客户端的 TCP 连接
-
http 报文 (应用层协议报文) 在浏览器 (http client) 和 Web 服务器 (http server) 之间进行交换
-
关闭 TCP 连接
HTTP 是 “无状态有连接 " 的,服务器不保留任何访问过的请求信息
# HTTP 连接
非持续 HTTP

总时间 = 2RTT + 文件传输时间
-
通过 TCP 连接最多发送一个对象
-
连接然后被关闭
-
下载多个对象需要建立多个连接
持续 HTTP
- 客户端和服务器之间的单个 TCP 连接上可以发送多个对象
- 服务器在发送响应后,不再断开 TCP 连接,而是保持该连接,用于后续对象的传送,直至该连接 “休息” 了一个较长的时间后,方断开该连接
- 减少了对服务器端连接数的需要,从而减少了对服务器端套接字资源的占用,提高了服务器的负载能力
- 持久连接又可以分为
- 非流水线方式:一个对象传输完成方能传输下一个
- 流水线方式:可以一次性发送所有请求,慢慢接收
HTTP 请求报文
HTTP 响应报文

# 用户 - 服务器交互:Cookie
Cookie 是一种由服务器生成并存储在用户浏览器中的小型文本文件,用于在客户端和服务器之间保存状态信息。它主要用于以下几种场景:
Cookie 的主要用途
- 会话管理
- 例如用户登录状态、购物车信息、游戏进度等。
- 当用户访问网站时,服务器可以通过 Cookie 识别用户是否已经登录,或者存储用户的偏好设置。
- 个性化设置
- 网站可以通过 Cookie 存储用户的语言偏好、主题选择等,使用户获得更符合个人习惯的浏览体验。
- 跟踪与分析
- Cookie 被用来记录用户在网站上的行为,例如访问的页面、点击的内容等。这对广告投放和数据分析非常重要。
Cookie 技术的组成部分:
-
在 HTTP 响应报文中有一个 Cookie 首部行
-
在 HTTP 请求报文中也有一个 Cookie 首部行
-
在用户的端系统中保留了一个 Cookie 文件,由用户浏览器负责管理
-
在 Web 站点有一个后端数据库
# 文件传输协议:FTP
习题:
# 电子邮件
# 实现过程
习题:
# 邮件格式
# 邮件读取格式
# 基于万维网的电子邮件
# DNS
# 简况
-
DNS 是一个分布式数据库,由很多台 DNS 服务器按照层次结构组织起来
-
DNS 运行在端到端系统上,且使用 UDP 协议(53 号端口)进行报文传输,因此 DNS 是应用层协议
-
DNS 以 C/S 的模式工作
-
DNS 不直接和用户打交道,而是因特网的核心功能
# 结构
根 DNS 服务器:如果域名映射未知,则向授权域名服务器查询;取得映射;将映射返回本地域名服务器
顶级域 DNS 服务器:负责顶级域名和所有国家的顶级域名解析工作,例如:com, org, net, gov, uk, cn, jp 等
权威 DNS 服务器:属于某个组织的 DNS 服务器,为组织的服务器提供一个权威的域名到 IP 地址的映射服务 (例如:Web 和 mail)
# 域名解析过程
# DNS 缓存
习题:
# DNS 提供服务
- 域名到 IP 地址的转换
- 主机 / 邮件服务器别名:为不好记的规范主机 / 邮件服务器名提供一个易记的别名 e.g. www.hotmail.com -> www.hotmail.aate.nsatc.net
- 负载均衡
- 一个域名对应多个 IP
- DNS 服务器在多个 IP 中进行轮转
# P2P 文件共享
