zoukankan      html  css  js  c++  java
  • HTTP2.0

    HTTP2使用的是二进制传送,HTTP1.X是文本(字符串)传送

    HTTP1.X使用的是明文的文本传送,而HTTP2使用的是二进制传送,二进制传送的单位是帧和流。

    帧组成了流,同时流还有流ID标示

    HTTP2支持多路复用

    同域名下所有通信都在单个连接上完成;

    单个连接可以承载任意数量的双向数据流;

    数据流以消息的形式发送,而消息又由一个或多个帧组成,多个帧之间可以乱序发送,因为根据帧首部的流标识可以重新组装;

    同个域名只需要占用一个 TCP 连接,消除了因多个 TCP 连接而带来的延时和内存消耗

    单个连接上可以并行交错的请求和响应,之间互不干扰

    服务器推送

    服务端可以在发送页面HTML时主动推送其它资源,而不用等到浏览器解析到相应位置,发起请求再响应。

    例如服务端可以主动把html中用到的JS和CSS文件推送给客户端,而不需要客户端解析HTML时再发送这些请求。

    服务端可以主动推送,客户端也有权利选择是否接收。如果服务端推送的资源已经被浏览器缓存过,浏览器可以通过发送RST_STREAM帧来拒收。

    主动推送也遵守同源策略,服务器不会随便推送第三方资源给客户端。

    头部压缩

    使用专门的 HPACK 算法,每次请求和响应只发送差异头部,一般可以达到 50%~90% 的高压缩率。

    http2 和 http1.1 keep-alive 有什么区别?

    keep-alive :

    1. 请求 a.html
    2. 响应 a.html
    3. 请求 b.css
    4. 响应 b.css

    必须等到服务端响应了前一次请求,才能发起第二次请求 -> 阻塞。 按顺序发送请求,按顺序接收请求,这样接收端才不会乱掉。

    而 http2 的多路复用可以同时发送多个请求,不一定要按照顺序,也不用等上一个请求响应。这些请求都有唯一标识,所以可以无序。

    原文:https://segmentfault.com/q/1010000004576717

  • 相关阅读:
    BZOJ3670:[NOI2014]动物园(KMP)
    415. [HAOI2009] 旅行
    U10223 Cx大帝远征埃及
    U10206 Cx的治疗
    2741. [济南集训 2017] 掰巧克力
    复习题目汇总 over
    7-20 表达式转换(25 分)
    7-19 求链式线性表的倒数第K项(20 分)(单链表定义与尾插法)
    7-18 银行业务队列简单模拟(25 分)
    7-17 汉诺塔的非递归实现(25 分)(有待改进)
  • 原文地址:https://www.cnblogs.com/xjy20170907/p/12910238.html
Copyright © 2011-2022 走看看