1. 七层模型
OSI七层模型: 开放系统互连参考模型 (Open System Interconnect 简称OSI),其最主要的功能使就是帮助不同类型的主机实现数据传输
应用层:http/FTP协议 ——- 主要解决如何包装数据,提供用户程序的“接口”;
表示层:数据的表现形式,特定功能的实现,如数据加密;
传输层:tcp/udp协议 —— 主要解决数据如何在网络中传输;
网络层:ip协议
传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的。
2. HTTP/HTTPS协议
HTTP:即超文本传输协议(Hypertext transfer protocol),是一个属于应用层的面向对象的协议。HTTP协议永远都是客户端发起请求,服务器回送响应。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),即安全套接字层超文本传输协议,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL
默认HTTP的端口号为80,HTTPS的端口号为443。
HTTPS 客户端与服务器交互过程
1》、客户端发送请求,服务器返回公钥给客户端;
2》、客户端生成对称加密秘钥,用公钥对其进行加密后,返回给服务器;
3》、服务器收到后,利用私钥解开得到对称加密秘钥,保存;
4》、之后的交互都使用对称加密后的数据进行交互。
3.TCP/IP协议
Transmission Control Protocol/Internet Protocol的简写,网络通讯协议。 TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。
握手过程:a.主机A向主机B发出连接请求数据包;
b.主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包;
c.主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。
三次“对话”的目的是使数据包的发送和接收同步,握手过程中传送的包里不包含数据,经过三次“对话”之后,主机A才向主机B正式发送数据。
tcp与udp的区别:
4. Socket
Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们使用TCP/IP协议。
建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。