• kissingers
    2019-05-07
    会介绍下QUIC 吗

    作者回复: 目前课程规划中是没有的。如果课程录制时间没有大量超出(Nginx课程就严重超时了),且大家都比较想了解QUIC协议,可以考虑在第5部分课程里插入介绍下

    
     9
  • 码农Kevin亮
    2019-05-06
    请教老师,HTTP定义中提到的可扩展语义是指什么?可否举例说明

    作者回复: 例如,最初一个HTTP包体只能是一种资源类型,在HTTP头部中有Content-Type表示。后来表单提交时,既有按钮、文本、下拉框也有文件、图片这样的二进制文件,于是把Content-type扩展为:multipart/form-data; boundary=----,而HTTP包体则可以由多个资源以boundary拼接而成。这就是一种可扩展的语义。

    
     5
  •        鸟人
    2019-05-25
    “浏览器发起http请求”为什么这么讲呢? 不应该是浏览器调用操作系统指令发起请求么?

    作者回复: 操作系统只实现TCP层,浏览器只能使用系统调用建立TCP连接,而构造HTTP请求是浏览器的事,何时发起请求也是浏览器的事

    
     3
  • 有点意思
    2019-05-10
    陶辉老师好:
    请问在实际环境中,同一个session里面,http传输必然是一问一答么
    会不会出现这种情况
    就是在同一个sesssion里面,多次请求后,第一次请求的响应才能收到

    另外某种协议一次请求后是另外一个请求呢?还是本次请求的应答?这个是由什么决定的
    展开

    作者回复: 1、对,http/1.1协议一定是request/response模式,同一个连接(session也可以)下一定是第一个响应收到后,才能发第二个请求。
    2、如果协议支持多路复用,那么需要在每个请求和响应上有一个id字段,以使得客户端或者服务器能够对得上某请求的响应,你可以关注第2部分以后的课程,都有这个特性。

    
     2
  • NEVER SETTLE
    2019-06-02
    老师,我一直搞不清什么时候静态资源和动态资源,静态资源是不是就是存放在服务端真实的文件?动态资源是不是就是,当客户端请求服务端之后,服务端经过一些获取数据、逻辑计算等操作,最后按照约定的api返回给客户端的json或protobuf等信息。 第二个问题是和概念相关的,通常说的web是不是就是web服务器?web和http有什么联系?感觉自己晕晕的,老是搞不明白。

    作者回复: 1、静态资源是指不同用户、一段时间内访问同一个URL,结果完全相同;动态资源指不同用户、不同时间的URL返回内容不同。
    2、web是个概念,它最初描述人如何浏览互联网,它包含http。http只是一个应用层协议,而web包括很多协议以及其他规范,也包括服务器。

    
     1
  • pyhhou
    2019-05-08
    老师,很高兴在极客时间再次学习你的课程。这里想问一个问题,就是渲染引擎调用网络、JS解释器以及UI后端模块,这三个模块之间有运行的先后次序吗?还是说它们是穿插进行的?另外我看到图中用户界面也会请求UI后端,这里指的是用户在页面上的操作会触发 UI后端模块的响应?谢谢老师

    作者回复: 1、表面上看是穿插进行的,但实际是有先后顺序的:
    某一个请求,一定是由于“上游”请求引发的。即“上游”请求的响应接收到,并且被解析后,才发起该请求。请参见第9课在Network面板中验证。
    某一个请求来源是哪,例如javascript文件还是HTML超链接亦或是浏览器地址栏,都可以在Network面板中看到。
    2、这里其实是指,把渲染结果展示给用户看。

    
     1
  • 彭刚
    2019-05-05
    4月份就看到预售课程里有这门课了,特别期待,出来看到立马买了,里面内容真的跟感兴趣也很有用

    作者回复: 希望能帮到你:-)

    
     1
  • guanweiliang
    2019-05-15
    请教下老师 三次握手是每次http请求都会执行吗?比如我点击页面中的超链接这个时候也会执行三次握手吗?

    作者回复: 不一定,如果是keepalive长连接(详见第15课)会复用TCP连接。另外,即使服务器明确可以使用长连接,浏览器也有可能新开一个TCP连接以增加传输效率,不同的浏览器及版本都不一样,目前版本的Chrome大概会最多开6个连接,故点击超链接是否握手也与浏览器策略有关

    
    
  • 有点意思
    2019-05-12
    老师,你好
    请教个问题,在分析实际生产环境中抓的包的过程中,遇到了一个问题,想不通,报文内容如下:
    54    37.286904    10.36.65.21    10.65.1.151    HTTP    388    GET /_aliases HTTP/1.1
    Transmission Control Protocol, Src Port: 47548, Dst Port: 9222, Seq: 1, Ack: 1, Len: 318
        Source Port: 47548
        Destination Port: 9222
        [Stream index: 1]
        [TCP Segment Len: 318]
        Sequence number: 1 (relative sequence number)
        [Next sequence number: 319 (relative sequence number)]
        Acknowledgment number: 1 (relative ack number)
        1000 .... = Header Length: 32 bytes (8)
        Flags: 0x018 (PSH, ACK)
        Window size value: 258
        [Calculated window size: 258]
        [Window size scaling factor: -1 (unknown)]
        Checksum: 0x7872 [unverified]
        [Checksum Status: Unverified]
        Urgent pointer: 0
        Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps
        [SEQ/ACK analysis]
        [Timestamps]
        TCP payload (318 bytes)
    Hypertext Transfer Protocol
        GET /_aliases HTTP/1.1\r\n
        Host: 10.65.1.151:9222\r\n
        Connection: keep-alive\r\n
        Accept: application/json, text/javascript, */*; q=0.01\r\n
        User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\r\n
        Accept-Encoding: gzip, deflate\r\n
        Accept-Language: zh-CN,zh;q=0.9\r\n
        \r\n
        [Full request URI: http://10.65.1.151:9222/_aliases]
        [HTTP request 1/9]
        [Response in frame: 55]
        [Next request in frame: 176]

    上面tcp报文的seq=1,应该是客户端和服务端的第一次握手,但是怎么可以携带http数据呢,这点真有点想不通,按道理三次握手中,最起码前两次握手不能携带应用层数据吧
    展开

    作者回复: tcp fastopen下可以的。第5部分课程会介绍到

    
    
  • Jesse
    2019-05-09
    老师好,想问一下服务器和客户端之间的通信采用http1.0还是http1.1是由服务器决定的还是由客户端决定的,或者是由两者共同决定的啊?

    作者回复: 两者共同决定

    
    
我们在线,来聊聊吧