你是否感觉 Http、Https、TCP、UDP这些协议很耳熟,经常听到但不知道是怎么回事;或是很了解,但让你解释又容易解释不清?
一起来看看他们之间的区别和联系吧~
一、先有个基础的认知
![2c44f8b9d67e9dd45de1986947181fdc.png](https://i-blog.csdnimg.cn/blog_migrate/85e0b82144ebf7db48b2b638de5e7136.jpeg)
OSI七层模型
- HTTP和HTTPS是应用层协议,该层协议负责主机间数据传输;
- TCP和UDP是传输层协议,该层协议负责网络连接。
二、HTTP和HTTPS
![c64587c9c980510f759d13b35934970f.png](https://i-blog.csdnimg.cn/blog_migrate/78dab561e12f3e7fd06ea37ba9ea1799.jpeg)
HTTPS = HTTP + SSL/TSL(安全层)
- HTTP是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。
- HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
HTTP vs HTTPS的工作原理
![010750e9c97e2f1dcab13a772d78f15a.png](https://i-blog.csdnimg.cn/blog_migrate/e1e4feda2cbe5549c6d8a1b244b88c5c.jpeg)
HTTP vs HTTPS
客户端使用HTTPS与服务器通信的步骤:
- 客户端使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
- Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
- 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
- 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
- Web服务器利用自己的私钥解密出会话密钥。
- Web服务器利用会话密钥加密与客户端之间的通信。
三、TCP和UDP
- TCP 是面向连接的,并且是一种可靠的协议,在基于 TCP 进行通信时,通信双方需要先建立一个 TCP 连接,建立连接需要经过三次握手,握手成功才可以进行通信,而断开连接要进行4次。
- UDP 是一种面向无连接,且不可靠的协议,在通信过程中,只要(目的地址,端口号,源地址,端口号)确定了,就可以直接发送信息报文,并且不需要确保服务端一定能收到或收到完整的数据。
![0108b09522e75cc189b2f511bc193770.png](https://i-blog.csdnimg.cn/blog_migrate/3759da8c6753840e3460f38b0d2d7cf4.jpeg)
适用场景
- TCP 协议由于可靠性高,多用于文件传输、重要状态的更新等;
- UDP 协议则多用于实时性要求高的 视频传输、实时通信等。
四、应用场景:TCP+HTTPS
上文的OSI七层模型是理论模型,现实中使用的模型是TCP/IP五层模型,重点来看这三层:网络层、传输层、应用层。
![bdf49f2db393a578687080d847427a8d.png](https://i-blog.csdnimg.cn/blog_migrate/42380d5b10b1bdcfc0911ea81851cc07.jpeg)
先看一下维基百科对这三层网络的定义(比较通俗易懂):
- 网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。例如:互联网协议(IP)等。
- 传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。
- 应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
案例:终端访问 https://www.baidu.com 这三层是如何起作用的?
![6fd6e1ecb6193b419f8a4f2654fb5190.png](https://i-blog.csdnimg.cn/blog_migrate/a372b8e86b0fc09ed01bbd5396240276.jpeg)
访问步骤
![e73ddfc66ef9e52755dc26f34d60e029.gif](https://i-blog.csdnimg.cn/blog_migrate/c486021107138ae17bb72f6ea2f52dfe.gif)