历史回顾:html
【网络】HTTP + 通讯加密 + 认证机制 + 保护报文完整型 = HTTPS算法
简述下TCP的三次握手?浏览器
我:咱们能够谈恋爱吗? 她:能够的。 我: 那咱们谈恋爱吧。缓存
具体是双方协商,最终由服务器决定安全
在 network
中 表格中的 Protocol
,现代网站可能使用多个http版本。服务器
队尾阻塞问题只要传输层是TCP协议,就不会获得根本上的解决,http/2 利用流的机制很大程度上缓解了这个问题,http/3 传输层换了 UDP 才完全解决了这个问题。网络
创建一个TCP链接多个文件传输,而且不限制文件个数。实现了资源的并行传输。数据结构
HTTP/2 在协议层添加了一个二进制分帧层用来实现多路复用。二进制分帧层把文件分红帧,对帧进行编号传输,到服务器端再组装,由服务器来决定要先返回什么。tcp
一个tcp链接能够用来处理多个http请求,当前的请求阻塞了,后面的请求也要等待,这是http请求阻塞。post
一个请求了index.html,这个文件比较大,分了几回传回来 1,2,3,4,5,若是是 2,3,4,5数据包传回来了,而 1 没传回来,那么TCP也不会把这个数据交到上层,还得等 1 回来,而后才能进行拼接,上传到上层,这是TCP数据包阻塞。
是的,由于二进制分帧层是添加到http/2协议里了。
http/2 的慢启动对传输效率的影响微乎其微,影响传输效率的主要是文件的大小。多张图片大小加在一块儿,都没有合并一张雪碧图大,那雪碧图反而让传输更慢了。资源文件合并也是一样的道理。
http/2一个域名,理想状况下使用一个TCP长链接,慢启动只须要启动一次;http1.1一个域名创建多个TCP链接,创建几个TCP就会有几回慢启动。
TLS协议,用来建立加密通道须要的协商和认证。应用层(HTTP、FTP)协议传送的数据经过TSL协议时会被加密,从而保证通讯的私密性。
TCP是传输层协议,TLS是传输层安全协议。HTTPS才须要TLS协议,HTTP协议不须要,也就是说TLS协议不是必须的。
round trip time, 仅包括请求访问来回的时间,被称做网络延迟。
RTT = 传播时延(往返)+ 排队时延(路由器和交换机的) + 数据处理时延(应用程序的)
http 请求中的缓存 cache 机制,资源缓存。Cookie 一般用来保持登陆状态,信息缓存。
字符流、字节流、二进制在 HTTP 协议传输的时候,请求头、响应头都是以ASCII文本方式传输的,可是传输内容(响应体)多是多种形式的,接受方处理数据的时候根据 Content-Type
制定的类型进行处理,响应头若 Transfer-Encoding
这个字段,用来指定传输的数据的编码转换的压缩方式。没有这个字段,就没编码压缩。
有默认优先级,经过PRIORITY帧能够改变流的优先级。 具体默认优先级的规则,以及如何经过帧来改变流的优先级?会的大佬,在评论区留言讨论啊。
TCP经历了三次握手、四次分手,网络通讯更安全。
HTTP 2.0使用了首部压缩技术,压缩算法使用HPACK。可以让报头更紧凑,更快速传输。HPACK 协议,其中原理是哈夫曼编码及索引表(数据结构内容)。
HTTPS并非一个新的协议,一般 HTTP 直接和 TCP通讯,HTTPS先和安全层通讯,而后安全层再和 TCP 层通讯。也就是说 HTTPS 全部的安全核心都在安全层。它不会影响上下两层。
对发起 HTTP 请求的数据进行加密操做和对接收到HTTP的内容进行解密操做。
以上思考沉淀主要来自于极客时间《浏览器工做原理和实战》之浏览器的网络。
你们如何把站点升级到 http/2
,都遇到了哪些坑?看到有不少的网站是多协议并存的,哪些资源请求走 http/1.1
,哪些走 http/2
?你们有把网站升级到 http/3
的吗,都遇到了哪些坑,欢迎在留言区告诉我。