HTTP 和 TCP 之间的关系
TCP 是传输层协议,HTTP 是应用层协议,HTTP 运行在 TCP 之上。
首先是网络模型,有三种划分方式:
- OSI 七层模型
- TCP/IP 四层模型
- 五层模型
OSI 七层模型
- 应用层
- 表示层:应用程序和网络之间的翻译官,数据在这一层按照网络能理解的方案进行格式化,主要管理数据的加密解密(如 telnet)
- 会话层:负责网络中两节点的建立、维持及终止通信(如 DNS(DNS 用 UDP))
- 传输层:TCP/UDP
- 网络层:IP 协议属于这一层
- 数据链路层
- 物理层
TCP/IP 四层模型
- 应用层:合并了 OSI 模型中的 应用层、表示层和会话层
- 传输层:传输层的数据称为段(segments)
- 网络层:网络层的数据称为包(packages)
- 网络接口层:合并了数据链路层和物理层,数据链路层的数据称为帧(frames),物理层的数据称为比特流(bits)
TCP/IP 中最核心的技术就是传输层和网络层。
OSI 是一个宏观的理论模型,TCP/IP 更加侧重互联网的通信核心(围绕 TCP/IP 展开的一系列协议)
五层模型
把 TCP/IP 中的 网络接口层拆成数据链路层和物理层,目的是便于学习其原理。
HTTP (HyperText Transfer Protocal,超文本传输协议),客户端发送的每次请求都需要服务器回送响应,结束请求后,会主动释放连接,从建立连接到关闭连接的过程被称为“一次连接”。属于无状态协议(stateless),每次请求相互独立,服务器不会记录客户端的操作。(使用端口 80)
HTTPS (Secure HyperText Transfer Protocol,安全超文本传输协议)HTTP over SSL/TLS ,即在应用层和传输层之间增加了一个安全套接层 SSL/TLS(SSL: Secure Socket Layer ;TLS: Transport Layer Security),其中 SSL 使用 40 位关键字作为 RC4 流加密算法。(使用端口 443)
- HTTPS 对内容进行加密,建立一个信息安全通道,保证数据传输的安全,还提供身份认证,确认网站的真实性,并保证数据的完整性,防止内容被篡改。
TCP (Transmission Control Protocol,传输控制协议),位于传输层,规定了数据传输的规则,使得传输能够稳定高效。