跳转至

第2章 应用层

应用层最接近用户,也最能说明“协议为何存在”。HTTP 让客户端和服务器对资源操作形成共同语言;DNS 把稳定名称映射到可变化的网络位置;邮件协议把异步投递拆成发送与读取;CDN 把内容带到用户附近;Socket 则为应用提供访问传输服务的编程接口。

本章地图

  • HTTP 与 HTTPS:请求—响应、状态码、连接复用、缓存以及 HTTP 版本演进。
  • DNS:分层命名、递归解析、记录、缓存和安全边界。
  • 邮件、Socket 与 CDN:三个不同问题如何复用底层网络能力。

应用架构

常见架构包括:

  • 客户端—服务器:服务器具有相对稳定的地址,集中提供服务;Web、邮件最典型。
  • 对等网络:节点既消费也提供资源,扩展性强,但发现、管理和安全更复杂。
  • 混合架构:中心服务负责身份和索引,数据由边缘或对等节点传输。

应用协议必须定义消息语法、字段语义、消息顺序以及异常处理。只规定“正常请求长什么样”还不够;超时、重复、重定向、认证失败和版本不一致同样属于协议设计。

一条重要边界

应用进程看到的是 Socket 或更高层库,而不是裸 IP 分组。开发者选择 TCP、UDP 或 QUIC,相当于选择不同的交付性质和代价。应用层可以补充重试、幂等、缓存和加密,但不能假设下层会自动理解业务语义。

阅读建议

用浏览器开发者工具观察请求,再用 curl -vdig 和抓包对照。把页面上一个可见对象与一组实际报文对应起来,比背端口号更容易形成稳定理解。