HTTPS的理解

2019-10-13  本文已影响0人  雨天多久就

分享HTTPS之前,先简单分享一下其他几个概念

TCP
传输控制协议,是一种面向连接的,可靠的运输层协议。
双方建立了TCP协议后就可以传输数据。
建立TCP连接需要进行三次握手,简单来说就是下面这样:

Socket
套接字,它不是一种协议,是对TCP或者UDP的封装,可以理解为一种接口。
通过它可以发送或接收数据。一般通过socket建立的连接,除非一端主动断开,否则会长久保持这个连接,常常用来做IM通信使用。

HTTP协议
超文本传输协议,是一种应用层协议。它基于TCP建立通信连接,然后发起HTTP请求。
一次完整的HTTP请求如下:

HTTP协议是“请求-响应”的模式。按照正常情况下,服务端返回给客户端数据后就会关闭TCP连接。
但是HTTP1.1版本,为了提高传输效率,会通过keep-alive字段来告诉服务端不要关闭连接,客户端会将这个tcp连接放入池子中等待复用,省去了再次建立TCP的过程,但是还有一点弊端,就是一次只能处理一个连接,在上一次请求没有完成前,都需要等待,而且每次新请求都建立一个tcp连接,池子中的tcp连接过多会对服务端资源产生较大浪费。
HTTP2.0版本解决了上面的问题,实现了可以多路复用解决上面的问题。可以实现多个请求同时在这个tcp连接上进行。实现原理是:将数据分成了多个stream,每个stream都有标识可以知道是哪个连接请求的,因此多个请求可以同时在这个TCP上进行数据传递。

SSL/TLS
安全套阶层。SSL是早期的版本,TLS是标准化后的版本,可以理解为一个东西不同时期的叫法。
个人理解,主要是用来协商如何加密的。

HTTPS
和上面的HTTP相比,多了一个S。
其实HTTPS就相当于HTTP+SSL/TLS

一次完整的HTTPS请求如下:

参考地址:
http://www.httpclient.cn/category/https/
https://blog.51cto.com/11883699/2160032

上一篇 下一篇

猜你喜欢

热点阅读