我正在尝试使用SPDY协议,我偶然发现a sample of SPDY protocol(可以使用“attachment”链接下载)。
以下是我对它的看法:
根据SPDY规范,this should be compressed。为什么我能看到这个?有没有办法在SPDY协议中禁用标头压缩?我用错误的方法使用Wireshark吗?
答案 0 :(得分:2)
你联系的草案说明了这一点:
使用zlib 压缩名称/值标题块的全部内容。在连接的一个方向上,所有名称值对都有一个zlib流。 SPDY在每个压缩帧之间使用SYNC_FLUSH。
实施说明:可以调整压缩引擎以支持速度或大小。优化大小会增加内存使用和CPU消耗。因为标头块通常很小,所以实现者可能希望将压缩引擎的窗口大小从默认的15位(32KB窗口)减少到更像11位(2KB窗口)。确切的设置由压缩器选择,解压缩器可以在任何设置下使用。
它不会强制执行任何压缩级别。实际上,您可以使用zlib而不进行压缩,这由zlib格式支持:
0级实际上根本没有压缩,实际上会稍微扩展数据以产生zlib格式(它不是输入的逐字节副本)。
我联系了样本的作者。事实证明他正在使用nginx进行实验。在他提供的文档中,nginx的配置如下:
# SPDY
server {
listen 443 ssl spdy;
server_name localhost;
ssl_certificate cert.pem;
ssl_certificate_key key.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers DES-CBC3-SHA;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
但是,nginx文档声明必须明确指定标头压缩:
Syntax: spdy_headers_comp level; Default : spdy_headers_comp 0;
设置标头压缩级别。 [...]特殊值0关闭标题压缩。
这意味着标头压缩很可能不会为实验启用。