路漫漫其修远兮, 吾将上下而求索

0%

三次握手

三次握手, 其实就是说创建一个客户端到服务器TCP链接需要发送的三个包. 主要作用就是确认通信双方的接收能力和发送能力是否正常, 并指定初始化序列号为后续的传输做准备.

三次握手过程

  1. 第一次握手, 客户端给服务端发一个 SYN 报文, 并指明客户端初始状态的序列号 ISN(c), 此时的客户端处于 SYN_SENT 状态. 服务端接收到此次握手后能确认客户端的发送和服务端的接收功能没有问题.
  2. 第二次握手, 服务端收到客户端的 SYN 报文之后, 会以自己的 SYN 报文作为回答. 同时为了告诉客户端自己收到了他的第一次握手信息. 将客户端的 ISN 值 + 1 作为 ack 返回给客户端, 此时服务端处于 SYN_RCVD 状态, 此时客户端可以明确, 客户端 / 服务单, 发送 / 接收功能都正常, 但是此时服务端不知道客户端接收信息能力如何.
  3. 第三次握手, 客户端收到 SYN 报文之后, 会发送一个 ACK 报文, 值为服务端的 ISN + 1, 此时客户端处于 ESTABLISHED 状态. 当服务器收到 ACK 报文之后也会进入 ESTABLISHED 状态. 至此服务端确定了客户端发送, 接收信息功能正常, 链接建立成功.
阅读全文 »

  1. URL 解析, 首先浏览器会解析你渐入的 url 是否为一个合法的 url, 包含 协议, 域名, 端口, 路径, 查询字符串, 锚点哈希等信息…

URL 解析示意图

  1. DNS 查询, 通过 DNS 查询找到目标服务器的 ip 地址

DNS 查询过程

阅读全文 »

HTTP 0.9

  1. 只有一个 GET 命令
  2. 没有 Header 等描述信息
  3. 服务端内容返回成功之后便会关闭 TCP 链接
  4. 只能发送文本文档, 不支持图片视频等多媒体资源

HTTP 1.0

  1. 扩充了传输内容的格式, 支持了图片, 视频, 二进制文件的数据的传递. 为多媒体互联网的大发展奠定了基础
  2. 增加了 POST, PUT, HEADER 等请求方法
  3. 增加了 statusCode 和 header 内容, 用于描述请求会话
  4. 增加了多字符集的支持, multi-part 发送, 权限, 缓存, 和内容编码等
  5. 新增了缓存能力 Expire 字段
阅读全文 »

概念

CDN(Content Delivery Network), 内容分发网络. 是根据用户的位置分配最近的服务器资源的技术. 用户在访问资源是不再是必须访问源站, 而是访问离他最近的 “边缘节点” 请求响应的过程如下图:

CDN 工作原理

阅读全文 »

概念

DNS(Domain Names System), 域名解析系统. 是提供域名以及与之相对应的 IP 进行转换的服务器. 就是给定域名返回其对应 IP 的一项互联网服务.

阅读全文 »