Linux中国
每个 HTTP/2 连接会发送一条隐藏的秘密信息!
如果你监听过 HTTP/2 连接的建立过程,你也许会注意到在每个连接建立时都会发送一条这样的报文。如下:
即以下文本:
PRI * HTTP2.0
SM
如果将 HTTP2.0 以及换行从其中去掉,那么我们就得到了“PRISM”!——这是什么?是斯诺登所揭露的 NSA 的“棱镜计划”!只要是 HTTP/2.0 连接,都会在一开头就发送这样的报文。
是你的 HTTP/2.0 连接被 NSA 监控了么?不是!这条消息代表了你的服务器真正支持了 HTTP/2.0,它是一个用于识别的魔法字符串。
它在 RFC7540 Section 3.5 中描述如下:
在 HTTP/2 中,每个端点都需要发送一个连接引语作为所用协议的最终确认,并用于建立 HTTP/2 连接的初始设置。客户端和服务器发送不同的连接引语。
客户端的连接引语以24个字节开始,以16进制表示如下:
0x505249202a20485454502f322e300d0a0d0a534d0d0a0d0a
即以下列字符串开始: “**PRI * HTTP/2.0rnrnSMrnrn”**。
事实上,这个魔法字符串原本是“FOOBA”:在 2013/5/29 发布的 draft-ietf-httpbis-http2-03 中它还是这个样子:“*FOO HTTP/2.0rnrnBArnrn**”。
而在同年6月份斯诺登事件沸沸扬扬之后,7/8发布的 draft-ietf-httpbis-http2-04 中就变成了“*PRI HTTP/2.0rnrnSMrnrn**”。
所以,你知道了吧?这个古怪的字符串是互联网工程任务组(IETF)对 NSA 的嘲讽。
本文转载来自 Linux 中国: https://github.com/Linux-CN/archive
对这篇文章感觉如何?
太棒了
0
不错
0
爱死了
0
不太好
0
感觉很糟
0
More in:Linux中国
如何通过 VLC 使用字幕
使用 VLC 媒体播放器播放和管理字幕的新手指南。
Unix 桌面:在 Linux 问世之前
仅仅开源还不足以实现开放,还需开放标准和建立共识。
Valve 对于 Ubuntu 的 Snap 版本的 Steam 并不满意:原因何在
你可能会发现,Snap 版本的 Steam 并不如你期待的那样好,你怎么看?
Wine 9.0 发布,实验性地加入了 Wayland 驱动
Wine 的这个新版本正在为未来做好准备!