一、HTTP是什么?
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
二、HTTPS是什么?
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。
三、HTTPS 与HTTP有什么区别?
http协议传输的数据都是明文数据,安全性较低,数据泄露风险较大,而https则是在http基础上做了加密,简单来说就是http的安全版,即在http下加入SSL安全层,https的基础就是SSL,因此传输加密的加密内容就要用到SSL。
- https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
四、HTTPS的工作原理
我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取,所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。
- HTTPS = HTTP + SSL/TLS,也就是用 SSL/TLS 对数据进行加密和解密,Http 进行传输。
- SSL,即 Secure Sockets Layer(安全套接层协议),是网络通信提供安全及数据完整性的一种安全协议。
- TLS,即 Transport Layer Security(安全传输层协议),它是 SSL3.0 的后续版本。
- 客户端发起 Https 请求,连接到服务器的 443 端口。
- 服务器必须要有一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。
- 服务器将自己的数字证书发送给客户端(公钥在证书里面,私钥由服务器持有)。
- 客户端收到数字证书之后,会验证证书的合法性。如果证书验证通过,就会生成一个随机的对称密钥,用证书的公钥加密。
- 客户端将公钥加密后的密钥发送到服务器。
- 服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,酱紫传输的数据都是密文啦。
- 服务器将加密后的密文返回到客户端。
- 客户端收到后,用自己的密钥对其进行对称解密,得到服务器返回的数据。
五、HTTPS的优点
1、搜索引擎方面:
谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。
2、安全性:
- 使用https协议能认证客户端和服务器,保证数据传输到确认的客户端和服务器;
- https协议是SSL和http构建的传输协议,保证数据传输中不被窃取、改变,保证了数据传输的完整性;
- https是现行规则架构下最安全的传输数据方式,虽然不是绝对安全,但是它加大了中间人的攻击成本,让数据不易被窃取;
- 目前通用的浏览器对使用https协议的网站提升了优化排名,使用https协议的网站在搜索结果中的排名会更高。
六、HTTPS的缺点
虽然HTTPS已经是比较优秀的方法,但仍然存在不足之处:
1、经济上讲:
-
SSL证书是要收费的。功能越强的证书, 越贵
-
SSL会延长页面的加载时间, 有统计延长大概50%
-
https在缓存方面不如http
-
https会更多的占用服务器的资源
-
https面对黑客攻击、Dos拒绝服务攻击方面也没啥作用
2、搜索引擎上讲:
据ACM CoNEXT数据显示,使用HTTPS协议会使页面的加载时间延长近50%,增加10%到20%的耗电,此外,HTTPS协议还会影响缓存,增加数据开销和功耗,甚至已有安全措施也会受到影响也会因此而受到影响。
而且HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。
最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
七、搜索引擎对HTTPS的态度
百度推出了全站HTTPS加密搜索服务,以此解决“第三方”对用户隐私的嗅探和劫持,其实,早在2010年5月份,谷歌便开始提供HTTPS加密搜索服务,在HTTPS网页的抓取问题上,百度在2014年9月份的一份公告中表示“百度不会主动抓取HTTPS网页”,谷歌在算法更新中则表示“同等条件下,使用HTTPS加密技术的站点在搜索排名上更具优势”。
1、谷歌的态度
谷歌在HTTPS站点的收录问题上与对HTTP站点态度并无什么不同之处,甚至把“是否使用安全加密”(HTTPS)作为搜索排名算法中的一个参考因素,采用HTTPS加密技术的网站能得到更多的展示机会,排名相对同类网站的HTTP站点也更有优势。
而且谷歌曾明确表示“希望所有的站长都能将使用HTTPS协议,而非HTTP”更是表明了其对达到“HTTPS everywhere”这一目标的决心。
2、百度的态度
虽然百度曾表示“不会主动抓取https网页”,但对于“很多https网页无法被收录”也是“耿耿于怀”,去年9月份,百度曾就“https站点如何建设才能对百度友好”问题发布了一篇文章,给出了“提高https站点的百度友好度”的四项建议及具体操作。
此外,近日的“百度全站HTTPS加密搜索”事件也再次彰显了百度对HTTPS加密的重视,可见,百度并不“反感”HTTPS站点,所以“不主动抓取”应该也只是暂时的吧!