1. HTTPS
HTTPS也称作是HTTP over TLS,是在HTTP协议的基础上加上了SSL/TLS协议,保证了数据传输过程的安全性,数据加密后再进行传输,即使被窃取了,没有密钥也是还原不出内容,被广泛应用于安全性需求高的网站,比如支付、购物等网站。
1.1 作用
- 数据完整性
使用HTTP时,网页的传输的内容是明文的,很容易就被篡改内容,例如ISP会植入一些广告等,而使用HTTPS则不会,因为传输的内容是密文,即使别人拿到了,也无法恢复原有内容,就无法篡改其内容了。
认证
验证客户端以及服务端,保证数据发送到想要的地方
加密
对传输的内容进行加密,防止被窃取信息
1.2 HTTP 1.0 与 HTTP 1.1
长连接和短连接
- 短连接:不会保持长久的连接,比如请求一个页面时,
① 先发起一个TCP连接,接着获取到页面的HTML代码,此时就将连接断开.
② 解析HTML代码,发现静态资源(css,图片),在依次对资源进行一次次的TCP连接,获取资源- 长连接:keep-alive,维持一个较长的连接,比如请求一个页面时,
① 发起一个TCP连接,获取到HTML代码,连接继续保持着
② 解析HTML代码,发现静态资源,利用已存在的连接,继续去获取资源- 在HTTP 1.0 中默认使用的是短连接,而在HTTP 1.1 中则是默认使用长连接
2. SSL/TLS
SSL(Secure Sockets Layer),安全套接层
TLS(Transport Layer Security),标准化后的SSL协议,所以SSL和TSL是同一个东西的不同阶段。
2.1 作用
SSL/TLS在网络模型中是处于应用层和传输层协议(TCP)之间,主要是利用来生成客户端和服务端之间的“对话密钥”,保证传输的安全性,而实际传输还是通过HTTP协议,只不过在HTTP协议基础上,传输的内容是通过“对话密钥”加密过的密文,这样做的原因是非对称加密很耗费资源和时间,要是每个连接都是用SSL/TLS的形式进行加密传输,会影响响应时间,而利用“对话密钥”的对称加密则能解决资源占用的问题,所以实际上HTTPS = HTTP(负责传输) + SSL/TLS(负责制造“对话密钥”)
2.2 流程
3. HTTPS和HTTP的区别
HTTPS | HTTP |
---|---|
加密过的安全协议:传输的是密文 | 没有加密的协议:传输的是明文 |
HTTPS = HTTP + SSL/TLS | 单纯HTTP |
数据完整不会被篡改 | 数据明文,容易被篡改 |