tcp建立连接(三次握手)
当你的页面仅支持http1.x的时候,浏览器进程可能会和服务器建立多个tcp连接。用不同的端口号区分tcp连接。
TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。
tcp断开连接
断开连接分两种情况:
- 一种情况是正常浏览网页,提出结束请求的是服务器,这种情况下一般都是进行正常的keep-alive,然后服务器提起正常的请求断开连接,四次挥手。
- 另一种情况就是用户主动杀死浏览器进程,可能就只有三次挥手了。服务器被动断开连接的时候,并且没有可传输的数据的时候,可能会将Server对Client的FIN报文的确认和Server的FIN一起发,这可能是三次挥手的原因
https建立连接
首先还是正常的tcp进行连接。
然后进行的就是tls的握手:
- client hello 这一步主要是向服务器发送客户端支持的http版本,包括http1.x 或者http2等,还有就是浏览器支持的加密的各种信息供服务端选择。
- Server Hello 选择client hello支持的各种协议,当然只是选择一个。
- certificate 服务器向浏览器发送证书链。
- Sever Hello Done 服务器向浏览器发送完毕,等待浏览器发送。
- Client Key Exchange 向服务器发送加密的相关方式
上面只是对各种包的一个大概的说明。