一、HTTP
HTTP协议即超文本传输协议,HTTP被广泛用于web浏览器和万维网服务器之间传递信息;
HTTP的主要特点就是:简单快速、灵活、无连接、无状态;
但HTTP存在以下不足:
1、通信使用明文,这导致可能被窃听窥视,不能传敏感信息,比如:支付密码等;
2、不验证通信方的身份,因此有可能遭遇伪装;
3、无法证明报文的完整性,所以有可能已遭篡改;
二、HTTPS
为了弥补HTTP存在的以上问题,HTTP引入了网景公司设计的SSL(Secure Sockets Layer)协议来为HTTP传输进行加密,这样HTTPS就随之诞生了;HTTPS经由HTTP进行通信,利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
HTTPS主要有以下优点:
1、HTTP在传输过程中使用密文传送,所以安全性相较于HTTP提高了很多;
2、HTTPS协议可以通过CA证书 认证用户和服务器,所以数据可以正确发送到客户端和服务端;
3、在SEO层面上,HTTPS网站的排名会比HTTP网站的排名高;
三、HTTP和HTTPS的其他区别:
1、HTTP和 HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443;
2、HTTP 页面响应速度比 HTTPS 快,因为 HTTP 通过TCP 三次握手建立连接,客户端和服务器之间需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上SSL 握手需要的 9 个包,所以一共是 12 个包。
3、HTTPS协议需要向服务端申请证书,浏览器端安装对应的根证书;
4、HTTPS可以有效规避运营商劫持;
四、HTTP/2
HTTP/2是HTTP协议自1999年HTTP1.1发布后的首个更新,主要基于SPDY协议。
HTTP/2新特性:
1、Header压缩,降低请求成本
每个HTTP传输都包括了请求的一系列资源和描述以及属性的标题。在HTTP/2之前是使用纯文本的形式发送,每次的开销要增加500-800字节,如果使用了HTTP Cookie会增加上千字节,在HTTP/2中,使用了HPACK压缩Header以及响应数据。
2、二进制传输:这是HTTP2.0中所有加强性能的核心,HTTP 1.X 是通过文本的方式传输数据的,而在HTTP2.0中引入了新的编码机制,所有传输的数据都会被分割,并采用二进制格式编码。
3、多路复用:在HTTP1.x中,我们经常会使用到雪碧图、使用多个域名等方式来进行优化,这是因为浏览器会限制同一个域名下的请求数量,当页面需要请求很多资源的时候,队头阻塞问题会导致在请求达到最大时,资源需要等待其他资源请求完成后才能继续发送。而HTTP2.0中, 基于二进制分帧层,HTTP2.0可以在共享TCP连接的基础上同时发送请求和响应。HTTP消息被分解为独立的帧,而不破坏消息本身的语义,交错发出去,在另一端根据流标识符和首部将他们重新组装起来。 通过该技术,可以避免HTTP旧版本的队头阻塞问题,极大提高传输性能。
4、服务器推送:HTTP2.0新增的一个特强大的新功能,就是服务器可以对一个客户端请求发送多个响应。服务器向客户端推送资源无需客户端明确的请求。这样可以达到减轻数据传送冗余步骤,也加快了页面响应的速度,提高了用户体验。
5、请求优先级:多路复用会带来一个新的问题,在连接共享的基础之上有可能会导致关键请求被阻塞。而SPDY协议允许给每个request设置优先级,这样重要的请求就会优先得到响应。HTTP消息分为很多独立帧之后,就可以通过优化这些帧的交错和传输顺序进一步优化性能。
补充说明:SPDY是Google开发的基于TCP协议的应用层协议。目标是优化HTTP协议的性能,通过压缩、多路复用和优先级等技术,缩短网页的加载时间并提高安全性。SPDY协议的核心思想是尽量减少TCP连接次数。
学习过程的简单记录,如果不恰当之处,欢迎指正!