常见网络协议(socket、http、https、websocket、tcp等)以及它们之间的关系解析

120 阅读1分钟

一、HTTPS

1、https为什么会出现?

HTTP是明文传输(会被窃听),不校验数据的完整性(会被篡改),而且也不校验双方的身份(会被第三方拦截)。

为了解决窃听、篡改、拦截这三大问题,因此引入了HTTPS, HTTPS相当于是对HTTP的扩展, HTTPS = HTTP + SSL/TLS,他们的协议栈如下所示:

image.png

2、HTTP和HTTPS分别是如何建立连接的?

HTTP 通过 TCP 的三次握手建立连接

TCP三次握手

image.png

HTTPS 在 TCP的三次握手之上再加入 SSL 四次握手建立连接

证书生成过程(HTTPS使用)

image.png

SSL四次握手

image.png

HTTPS建立连接完整过程

image.png

3、HTTP 是如何断开连接的?

TCP四次挥手

image.png

二、WebSocket

webSocket 连接过程

image.png

三、Socket

SocketTCP/IP协议栈抽象出来的一个接口,通过Socket才可以实现对TCP/IP的操作,正如上面提到的TCP三次握手,实际上操作的就是Socket,通过下面的一张图应该更好理解一点:

TCP连接的大概过程

image.png

通过socket完成TCP连接的详细过程

image.png

参考资料:

1、juejin.cn/post/684490…

2、juejin.cn/post/684490…

3、juejin.cn/post/695205…

4、juejin.cn/post/684490…

5、www.cnblogs.com/f-ck-need-u…