• 潘政宇
    2022-02-25
    1. HTTP chunk 2.属于header

    作者回复: 是的,你做开发,对这个很清楚:)

    
    7
  • whr
    2022-02-25
    杨老师好,我现在有一个事件比较奇怪,单位有一台监控机A,利用ping功能,每2分钟ping一次文件列表中的10几台机器,如果有异常就报警。其中有一台windows2008R2,每7-10天就会出现一次ping不通告警。于是我在另一台B服务器上每分钟也ping这台异常的机器,但是A报警时,B却没有异常。正常分析,如果A的ping有问题,为啥10几台服务器只有这一台告警呢?如果被监控机有问题,为啥只有A报警,B不告警呢? 请问杨老师,这种现象有什么思路查找原因,谢谢。

    作者回复: 您好,网络环境复杂,一两句也无法给你一定准确的回复,请谅解:)个人理解,你的A和B到windows机器的网络路径,可能不同。有可能A到windows机器的路径上有个节点(多半是网络设备)会偶尔不工作。我们以前就发现类似问题,甚至内网ECMP多条路径中,某一条会偶尔出错,修复这条路径就好了。 你先找找看A和B到windows的路径差异在哪里?

    共 2 条评论
    2
  • Chao
    2022-02-25
    chunks 就不使用content-length 来描述内容, 是规定一个结束符来结束传输的

    作者回复: 对,请求里有Tansfer-Encoding: chunks 这个 header就表示用块传输方式,不需要也无法用Content-Length表达数据载荷长度

    
    1
  • DAYDAYUP
    2023-01-04 来自上海
    需要补充一点telnet模拟http 1.1 请求时,需要带上 Host头。 实际操作: 在用telnet 模拟http 请求时,出现400错误 Trying 10.X.X.X... Connected to 10.X.X.X Escape character is '^]'. GET /sync/ping HTTP/1.1 HTTP/1.1 400 Bad Request Date: Wed, 04 Jan 2023 10:38:38 GMT Content-Type: text/html Content-Length: 163 Connection: close Server: Intsig Web Server ... MDN解释: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Host "所有 HTTP/1.1 请求报文中必须包含一个Host头字段。对于缺少Host头或者含有超过一个Host头的 HTTP/1.1 请求,可能会收到400(Bad Request)状态码。“

    作者回复: 是的,HTTP/1.1的规范里是需要客户端提供Host头部的。在实际场景中,有些服务端也会“兼容”这种缺少Host头部的情况,比如telnet www.baidu.com 80后发送GET / HTTP/1.1,我们还是可以得到一个HTTP 200 OK。

    
    
  • 上杉夏香
    2022-06-21
    还以为不属于headers。做这个判断的依据是HTTP/2。HTTP/2中,采用头部压缩的方式,进行数据传输。请求方法和请求路径都作为压缩字典的存在,类似CSS中的伪类咯~

    作者回复: HTTP/1.x的一个很大的性能问题是头部占整体报文的比例太大,相当于大车拉很少的货。为了提升有效载荷占整体报文的比例,势必要把头部的占比降下来。HTTP/2实现这一点所用的方法是头部压缩。比如请求方法和请求路径都在静态字典中,这样的只要传输一个数字2就可以代表GET这个方法了。既然HTTP/2的这个优化叫“头部压缩”,自然,请求方法和请求路径也属于“头部”了~

    
    
  • 一步
    2022-03-27
    新技术或者新事物的产生: 大部分都是 某位大佬要去做某件事情,解决某个问题 发现市面上已有的工具不能满足要求 或者用着体验不好,于是自己就去实现一个出来

    作者回复: 嗯包括wireshark、http、linux,都是差不多这个状况下的产物:)

    
    
  • 追风筝的人
    2022-02-28
    1. don't know ,老师 chunk 字段是不是http2 head stream里的概念? 2. 属于header

    作者回复: 1. 当http响应的头部里有Transfer-encoding: chunk,就不会带Content-Length头部了(带了的话可能引起一些客户端异常),这是HTTP/1.1的概念。 2. 正确。而且我发现这个题,同学们都答对了:)

    
    
  • 追风筝的人
    2022-02-28
    HTTP 的各种版本的知识点:HTTP/2 和 HTTP/3 的语义跟 HTTP/1.x 是一致的,不同的是 HTTP/2 和 HTTP/3 在传输效率方面,采用了更加先进的方案。Authorization 头部的知识点:它的格式为 Authorization: ,如果缺少了某一部分,就可能引发服务端报 HTTP 400 或者 500。HTTP 报文的知识点:两次回车(两个 CRLF)是分隔 HTTP 头部和载荷的分隔符。HTTP 返回码的知识点:HTTP 400 Bad Request 在语义上表示的是请求不符合 HTTP 规范的情况,各种不合规的请求都可能导致服务端回复 HTTP 400。

    作者回复: 赞~

    
    
  • 原则
    2023-06-10 来自广东
    请问老师,quic 是一种协议吗?还是说只是 UDP+HTTP/2 组合起来,才被称为 quic
    
    
  • 原则
    2023-06-10 来自广东
    1. chunk 传输 2. 属于 header 我们也曾经遇到过 400 的问题,不过不是格式错误,而是我们服务端有连接池,下一条 TCP 连接残留了上一条连接的数据,内部引发了 400。
    
    