• 滇西之王
    2019-10-12
    在tcp层 Tls层以上的数据都是tcp层的数据,tcp层对每个数据包都有编号,分为1,2,3 .... tcp保证双向稳定可靠的传输,如果2包数据丢失,1号包和3号包来了,那么在超时重传时间还没有收到2编号数据包,服务端会发送2号数据包,客服端收到之后,发出确认,服务端才会继续发送其他数据,客服端数据才会呈现给上层应用层,这样tcp层的阻塞就发生了
    
     7
  • moss
    2019-10-17
    老师好,采用了HTTP/2之后,雪碧图是不是彻底不需要了呢?而且多张图片变成雪碧图后,多张图片大小加和都没有一张雪碧图大,那是不是雪碧图反而让传输更慢了呢?

    作者回复: http/2是没必要用雪碧图了

     1
     2
  • LEON
    2019-12-26
    老师http2 是不是必须要使用https? 如果不用https可以吗?
    
     1
  • 小智
    2019-10-24
    浏览器是如何判断选择http1,http1.1,http2的。对应的部署是不是也要有回退机制,比如检测到浏览器不支持http2,就返回http1的模式?
     1
     1
  • 安思科
    2019-10-12
    前几天,http3已经在chrome和curl试用,使用UDP试图解决对头阻塞问题。
    
     1
  • Chao
    2019-10-12
    由于多路复用,反而产生队头阻塞时, 影响比http1.1更为巨大。
    在目前TCP下解决这个问题还是很困难的
    
     1
  • Peter Cheng
    2019-10-12
    TCP的队头阻塞,TCP传输过程中也是把一份数据分为多个数据包的。当其中一个数据包没有按照顺序返回,接收端会一直保持连接等待数据包返回,这时候就会阻塞后续请求。
    
     1
  • 晓东
    2020-01-15
    同一个域名用一个tcp解决了慢启动的问题,并且tcp带宽的竞争也少了6倍。但是本来可以6个tcp同时下载同一个域名的资源,现在只能用一个tcp了,我这个理解对么?
    
    
  • CMS
    2020-01-13
    能不能再详细讲一下:使用 CDN 的实现域名分片机制。
    
    
  • 爱胖胖的懒蛋蛋
    2019-12-31
    老师,HTTP/2的服务器推送特性这里,您说“那么在接收到 HTML 请求之后,附带将要使用的 CSS 文件和 JavaScript 文件一并发送给浏览器”,假设这个HTML文件有一个js关键资源和一个css资源,那么这句话是说一个请求有3个响应吗?(1个html+1个js+1个css),那如果html解析到<script src="*****">的时候还会去想浏览器发送这条资源的请求吗?如果不发送的话,那它是怎么告诉浏览器这条请求已经返回过了呢?
    
    
  • 爱胖胖的懒蛋蛋
    2019-12-31
    老师您好,“HTTP/2多路复用“这个图是画错了吧,stream2请求头里请求的是foo.css,返回数据怎么是bar.js呢?应该是foo.css吧~
    
    
  • 匡晨辉
    2019-12-18
    老师,还是没有理解http2怎么就能解决队头阻塞问题呢?http2 还是基于tcp连接的,经过二进制分帧层了以后不还是需要以数据包的形式通过tcp传输吗?tcp的数据包队头阻塞发生了不还是会影响后面的请求数据包的发送吗?

    作者回复: 是不管http/1我还是http/2,最后都需要经过tcp包的形式进行传输!

    而tcp包也是按照顺序的,一个阻塞了,会影响到其它数据包的接受!

     1
    
  • -_-_aaa
    2019-12-16
    HTTP/2 下浏览器获取的所有请求数据都会经过 "二进制分帧层" 吗?

    作者回复: 是的

    
    
  • -_-_aaa
    2019-12-16
    可能是由于数据包是有顺序的,只有多个数据包排满,滑动窗口才会组装下一批数据包,组装好才能发送。这样TCP 协议依然存在队头阻塞问题。
    
    
  • coder
    2019-12-15
    “如果使用单个 TCP 的持久连接,下载 100 个资源所花费的时间为 100 * n * RTT”这个没太懂,为什么时间是100 * n * RTT,其中这个n又代表了什么?
     2
    
  • 屈悦微
    2019-12-07
    这篇文章解决了我的很多疑问,但是文中有一点我还是不太理解,望作者百忙之中来解疑
    文中说http2中传输有优先级之分
    那么做为前端开发者能不能控制某个文件(如js)的优先级
    1.如果能,怎么控制?
    2.如果不能,优先级是由浏览器自动控制的么?
     1
    
  • 玉皇大亮
    2019-12-05
    有个疑问想请教老师,既然HTTP1.1为了并行下载资源为每个域名提供了6个TCP连接,那这6个TCP连接是并行传输数据的么?如果是为什么还会有队头阻塞的问题呢?这里没搞明白,或者其他同学明白的帮忙回答一下呗,感谢感谢

    作者回复: 这六个TCP连接的请求过程是并行的,这里所提到的对头阻塞是指发生在每个单独的tcp连接中,因为一个tcp连接可以用来处理多个http请求。

     4
    
  • vianem
    2019-12-05
    带宽那有点问题吧?一般我们说的100M带宽,是指100Mbps,转换成MBps得除以8

    作者回复: 我除了啊

    
    
  • Rocky
    2019-11-29
    tcp的队头阻塞虽然是缺点,但也从另一个方面保证了数据传输的可靠性,前一个没有完成或者出错,可以重传。改用udp后可能会丢帧,不可靠

    作者回复: http3中的quic协议也提供了udp的可靠传输

    
    
  • splm
    2019-10-24
    关于1.1的不理解地方,1.1不足的是因为同时创建了多个连接,导致抢占资源,但不是说1.1是长连接,管线化的吗?前者延迟,后面的任务也会跟着延迟,是一个串行的策略,但这里的说法,感觉是个并行的策略的啊。希望老师能解答一下。
     2
    
我们在线,来聊聊吧