zoukankan      html  css  js  c++  java
  • http协议的队首阻塞

    1 队首阻塞

    就是需要排队,队首的事情没有处理完的时候,后面的人都要等着。

    2 http1.0的队首阻塞

    对于同一个tcp连接,所有的http1.0请求放入队列中,只有前一个请求的响应收到了,然后才能发送下一个请求。

    可见,http1.0的队首组塞发生在客户端。

    3 http1.1的队首阻塞

    对于同一个tcp连接,http1.1允许一次发送多个http1.1请求,也就是说,不必等前一个响应收到,就可以发送下一个请求,这样就解决了http1.0的客户端的队首阻塞。但是,http1.1规定,服务器端的响应的发送要根据请求被接收的顺序排队,也就是说,先接收到的请求的响应也要先发送。这样造成的问题是,如果最先收到的请求的处理时间长的话,响应生成也慢,就会阻塞已经生成了的响应的发送。也会造成队首阻塞。

    可见,http1.1的队首阻塞发生在服务器端。

    4 http2是怎样解决队首阻塞的

    http2无论在客户端还是在服务器端都不需要排队,在同一个tcp连接上,有多个stream,由各个stream发送和接收http请求,各个steam相互独立,互不阻塞。

    只要tcp没有人在用那么就可以发送已经生成的requst或者reponse的数据,在两端都不用等,从而彻底解决了http协议层面的队首阻塞问题。

  • 相关阅读:
    JasperReport html 导出
    mysql 序列号生成器 (自定义函数)
    [Java][Spring]Spring事务不起作用 问题汇总
    序列 mysql
    订单编号
    Mybatis
    SNMP 配置
    Gradle 1.12用户指南翻译——第三十八章. Eclipse 插件
    cocos2dx2.0 与cocos2dx3.1 创建线程不同方式总结
    Android实战简易教程-第二十八枪(Uri转String型实例)
  • 原文地址:https://www.cnblogs.com/hustdc/p/8487366.html
Copyright © 2011-2022 走看看