敞开生长之旅!这是我参加「日新方案 12 月更文应战」的第14天

书接上文《图解 HTTP 》阅览笔记(二),咱们持续探究总结http的相关知识点。

咱们仍是先把问题摆到台面,带着问题读文章。

《图解 HTTP 》阅读笔记(三)

6.第九章&第十章 知识点

《图解 HTTP 》阅读笔记(三)

6.1 HTTP的瓶颈以及相应解决方案

HTTP优缺点剖析的时分,咱们是相对于HTTPS来剖析的,可是实际上,HTTP尽管简单、通用、扩展性高,可是自身存在许多瓶颈。

  • 一条衔接上只可发送一个恳求。
  • 恳求只能从客户端开始。客户端不能够接纳除呼应以外的指令。
  • 恳求/呼应首部未经紧缩就发送。首部信息越多延迟越大。
  • 发送冗长的首部。每次相互发送相同的首部造成的糟蹋较多。
  • 可恣意挑选数据紧缩格局。非强制紧缩发送。

6.1.1 Ajax的解决办法

Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML技术)是一种有用利用JavaScript和DOM(Document Object Model,文档目标模型)的操作,以达到部分Web页面替换加载的异步通讯手法。和以前的同步通讯比较,由于它只更新一部分页面,呼应中传输的数据量会因此而减少,这一优点显而易见。

《图解 HTTP 》阅读笔记(三)

6.1.2 Comet的解决办法

部分数据更新有了解决办法,可是服务端主动告诉客户端的功用,http仍是没有,所以这时有了变相的完成方案Comet

一般,服务器端接纳到恳求,在处理完毕后就会当即回来呼应,但为了完成推送功用,Comet会先将呼应置于挂起状况,当服务器端有内容更新时,再回来该呼应。因此,服务器端一旦有更新,就能够当即反馈给客户端。

《图解 HTTP 》阅读笔记(三)

6.1.3 SPDY的解决办法

连续呈现的Ajax和Comet等进步易用性的技术,一定程度上使HTTP得到了改进,但HTTP协议自身的约束也令人有些束手无策。为了进行根本性的改进,需要有一些协议层面上的改动。 SPDY以会话层的形式加入,操控对数据的流动,但仍是选用HTTP树立通讯衔接。因此,可照旧运用HTTP的GET和POST等办法、Cookie以及HTTP报文等。

SPDY完成的功用有:多路复用流(一个TCP衔接能够处理多个恳求)、恳求首部紧缩、推送功用(服务端推送客户端)运用SSL作为传输协议供给数据安全。 SPDY的首要意图是减少50%25以上的页面加载时间,可是不添加布置的复杂性,不影响客户端和服务端的Web应用,只需要浏览器和Web服务器支撑SPDY。

6.1.4 WebSocket的解决办法

WebSocket则供给运用一个TCP衔接进行双向通讯的机制,包含网络协议和API,以取代网页和服务器采 用HTTP轮询进行双向通讯的机制。 一旦Web服务器与客户端之间树立起WebSocket协议的通讯衔接,之后所有的通讯都依靠这个专用协议进行。通讯过程中可相互发送JSON、XML、HTML或图片等恣意格局的数据。 由于是树立在HTTP基础上的协议,因此衔接的发起方仍是客户端,而一旦建立WebSocket通讯衔接,不论服务器仍是客户端,恣意一方都可直接向对方发送报文。

《图解 HTTP 》阅读笔记(三)

6.2 WebSocket与SPDY的差异

相同: 两者都是为了解决HTTP的若干瓶颈而提出的解决方案 不同: 1)两者的侧重点不同,SPDY侧重于进步网页的加载速度,而且整体要求不高,只需客户端和服务端都支撑即可。而WebSocket侧重于供给运用一个TCP衔接,完成全双工通讯的一种协议。 2)对应在OSI七层模型中,SPDY归于会话层协议,WebSocket归于应用层协议。

6.3 HTTP1.0/1.1/2.0的差异

6.3.1 HTTP1.0/1.1

持久化衔接: HTTP1.0一次TCP衔接只能进行一次的恳求和呼应,HTTP1.1能够支撑一个TCP衔接,屡次的恳求和呼应。 节省资源: HTTP1.1能够支撑范围(Range)资源恳求,而不是HTTP1.0,只能恳求整个资源。 HOST支撑: 由于虚拟主机的呈现,一个主机能够有多个域名,所以HTTP1.1恳求头中新增了HOST。 缓存处理: 在HTTP1.0中首要运用header里的If-Modified-Since,Expires来做为缓存判别的规范,HTTP1.1则引入了更多的缓存操控策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供挑选的缓存头来操控缓 状况码添加: 在HTTP1.1中新增了24个过错状况呼应码

6.3.2 HTTP1.1/2.0

多路复用: HTTP2.0,能够支撑一个TCP衔接,并发屡次恳求,而不是HTTP1.1,只支撑串行恳求。

《图解 HTTP 》阅读笔记(三)

首部紧缩: HTTP1.1 与 HTTP 2.0 HTTP2.0都支撑消息主体的紧缩,可是HTTP2.0同时也支撑首部报文中的恳求首部、通用首部、呼应首部、实体首部等支撑紧缩。 两边通讯: HTTP1.1不支撑服务端到客户端的主动推送功用,从而有了后面的comet、spdy、websocket解决方案,HTTP2.0默许支撑全双工通讯。

6.4 HTTPS作业原理

合法认证组织的CA证书是内置在浏览器,也就是客户端里边的。 1.HTTP 恳求服务端生成证书,服务端将自己的公钥,发给认证组织,认证组织运用自己的私钥进行加密,生成证书,回传给服务端,然后服务端给到客户端 2.浏览器开始查找操作系统中已内置的受信赖的证书发布组织CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法组织颁发 3.如果为合法的,则运用客户端运用内置的认证组织的公钥进行解密,对证书的有用期、合法性、域名是否与恳求的域名共同、证书的公钥等进行校验 4.客户端运用服务端的公钥,进行同享密钥(伪随机数生成器生成加密所运用的对称密钥)的加密,然后传送给服务端 5.服务端拿到加密内容之后,用服务端私钥进行解密,得到同享密钥 6.两边开始运用同享密钥进行数据的加密通讯

《图解 HTTP 》阅读笔记(三)

7. 总结

好了,文章写到这里,《图解HTTP》一书的首要内容,以及咱们开文所提出的一些问题,都现已总结完成,各位请对照思维导图,在自己的思维宫廷中,找寻一下这些问题的答案。

《图解 HTTP 》阅读笔记(三)