一文详解HTTPS与HTTP

2020-08-21 20:53:06互联网

HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

一、了解HTTP发展历史:

版本 产生时间 内容 发展现状
HTTP/0.9 1991年 不涉及数据包传输,规定客户端和服务器之间通信格式,只能GET请求 没有作为正式的标准
HTTP/1.0 1996年 传输内容格式不限制,增加PUT、PATCH、HEAD、 OPTIONS、DELETE命令 正式作为标准
HTTP/1.1 1997年 持久连接(长连接)、节约带宽、HOST域、管道机制、分块传输编码 2015年前使用很广泛
HTTP/2 2015年 多路复用、服务器推送、头信息压缩、二进制协议等 逐渐覆盖市场
 

二、HTTP的特点介绍:

1: 无状态

协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作

2: 无连接

HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。

3: 基于请求和响应

基本的特性,由客户端发起请求,服务端响应

4: 简单快速、灵活

5: 通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性

HTTP协议传输数据以明文形式显示

针对无状态的一些解决策略:

场景:逛电商商场用户需要使用的时间比较长,需要对用户一段时间的HTTP通信状态进行保存,比如执行一次登陆操作,在30分钟内所有的请求都不需要再次登陆。

1、通过Cookie/Session技术

2、HTTP/1.1持久连接(HTTP keep-alive)方法,只要任意一端没有明确提出断开连接,则保持TCP连接状态,在请求首部字段中的Connection: keep-alive即为表明使用了持久连接

三、了解HTTPS协议的特点:

基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护。

通过抓包可以看到数据不是明文传输,而且HTTPS有如下特点:

1、内容加密:采用混合加密技术,中间者无法直接查看明文内容(收方能够证实发送方的真实身份);

2、验证身份:通过证书认证客户端访问的是自己的服务器(发送方事后不能否认所发送过的报文);

3、保护数据完整性:防止传输的内容被中间人冒充或者篡改(收方或非法者不能伪造、篡改报文)。

非对称加密过程需要用到公钥进行加密,那么公钥从何而来?其实公钥就被包含在数字证书中,数字证书通常来说是由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,证书中包含了一个密钥对(公钥和私钥)和所有者识别信息。数字证书被放到服务端,具有服务器身份验证和数据传输加密功能。

四、HTTPS的运用与总结:

1、安全性考虑:

1-1、HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用

1-2、SSL证书的信用链体系并不安全,特别是在某些地方可以控制CA根证书的情况下,中间人攻击一样可行

中间人攻击(MITM攻击)是指,黑客拦截并篡改网络中的通信数据。又分为被动MITM和主动MITM,被动MITM只窃取通信数据而不修改,而主动MITM不但能窃取数据,还会篡改通信数据。较常见的中间人攻击常常发生在公共wifi或者公共路由上。

2、成本考虑:

2-1、SSL证书需要购买申请,功能越强大的证书费用越高

2-2、SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗(SSL有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持,Windows XP就不支持这个扩展,考虑到XP的装机量,这个特性几乎没用)。

2-3、根据ACM CoNEXT数据显示,使用HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电。

2-4、HTTPS连接缓存不如HTTP高效,流量成本高。

2-5、HTTPS连接服务器端资源占用高很多,支持访客多的网站需要投入更大的成本。

2-6、HTTPS协议握手阶段比较费时,对网站的响应速度有影响,影响用户体验。比较好的方式是采用分而治之,类似12306网站的主页使用HTTP协议,有关于用户信息等方面使用HTTPS。

一文详解HTTPS与HTTP相关

https和http有什么区别

https和http有什么区别

两者看到的内容都是一样的,那么使用https和http有什么区别?简单的说,https比http多了一个安全层,多了一个加密层,安全方面自然要好。

2019-07-12