问题标签 [spdy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 zlib+dictionary 压缩/解压缩 spdy 名称/值块时出错
我试图编写一个 spdy 代理服务器,但在压缩/解压缩 spdy 名称/值块时遇到问题。
我正在使用 python 3.3 zlib 库来压缩/解压缩字典。
从chrome 31接收spdy帧时,帧大部分时间都可以解析,但是有些name/value块无法正确解压。
我有3个测试用例:
我是 python3+zlib 的新手(在这个项目之前使用 python 2.7)和 spdy。我真的很感谢你的帮助。
python - spdy3 的名称/值块有时无法用 python 解压缩
我正在为 chrome 构建一个 spdy 代理服务器。
当从 chrome 发送代理请求时,通常我会收到 3 帧:
- 一个 SETTINGS 框架(正确解析)
- https' CONNECT 请求的 SYN_STREAM 帧(也正确解析)
- 另一个无法解压缩名称/值块的 SYN_STREAM 帧(解压缩数据时出现错误 -3:标头检查不正确)
最后一帧很奇怪,因为我可以解析第一个 SYN_STREAM 也有名称/值块。
我已经尝试解决这个问题整整 2 天,甚至将 spdy 版本从 2 切换到 3,但仍然无法解决。
这是我的解压缩函数(Python 3.3):
这是日志的完整示例:
让我稍微解释一下:
(1) 代理从套接字接收到原始字节,其中包含 3 个 spdy 帧
(2) 从 (1) 的字节中解析出一个 SETTINGS 帧
(3) 还解析了一个 SYN_STREAM 帧
(4) 继续解析时,遇到了另一个SYN_STREAM
但不知何故,名称/值块部分无法解压缩
6-8个字节告诉了剩余数据的长度(长度:'\x00\x00'=41),尾部是'\x00\x00\xff\xff',所以我应该已经正确拆分了帧。
在“长度字节”之后,压缩名称/值块之前还有 10 个其他字节。
(5) 捕获到错误,列出了故障帧的字节,实际压缩的名称/值块的字节为:
(6/7) chrome有一阵子没回复了,所以它发了一个RST_STREAM帧取消了前面(3)的SYN_STREAM请求(这样OK)
解压功能有什么问题?
或者有谁知道如何解压缩第二个 SYN_STREAM 的 NV 块?
谢谢!
编辑:
我添加了一个完整的日志示例。
感谢@Mark,我看到 .flush() 没有被调用,但主要错误是'不正确的标题')
python - 如何使 spydlay 模块像 httplib/http.client 一样工作?
我必须测试基于 Jetty 的服务器。该服务器可以使用自己的协议、HTTP、HTTPS,最后它开始支持 SPDY。我有一些基于httplib
/的压力测试http.client
——每个线程都以相似的 URL 开头(查询字符串中的一些数据是可变的),将执行时间添加到全局变量,并且每隔几秒钟显示一些统计信息。代码如下:
使用本机协议的客户端共享httplib
API,因此connection
可能是本机的,HTTPConnection
或者HTTPSConnection
.
现在我想使用spdylay
模块添加 SPDY 测试。但是它的界面是不透明的,我不知道如何将它的不透明变成类似于httplib
界面的东西。我已经根据示例制作了测试客户端,但是虽然第二个参数spdylay.urlfetch()
是类名而不是对象,但我不知道如何在我的测试中使用它。我已经on_close()
在我的类的方法中添加了测试 extends spdylay.BaseSPDYStreamHandler
,但它与其他测试不兼容。如果是实例,我会在spdylay.urlfetch()
通话之外使用它。
如何spydlay
在基于httplib
接口的代码中使用?
google-app-engine - 我可以在 HTTPS AppEngine 请求上禁用 SPDY 吗?
如果我在 App Engine 上使用 HTTPS,Google 服务器会使用 SPDY 自动将其提供给兼容的浏览器。有没有办法覆盖这个(任何设置或特殊标题)?我想在使用 HTTPS 时使用旧的 HTTP/1.1
security - 执行 HTTPS | 经验?
我在问自己,是否可以通过 301 将每个 HTTP 请求重定向到其 HTTPS 对应项来强制执行 HTTPS 而不是普通 HTTP。
是否存在向后兼容性问题(IE,我在看着你)或任何其他缺点?搜索引擎如何处理这个问题?你已经有这方面的经验了吗?你有什么意见?
Google 自己也强制执行 HTTPS,但并非总是如此。如果您发送的是 IE6/7 User-Agent 标头,您将不会被重定向。如果我的用户愿意,我应该允许他们使用 HTTP 吗?
可以理解的是,电子前沿基金会建议用户始终使用 HTTPS。我可以为我的用户做出这个决定并强制执行 HTTPS 吗?有理由根本不使用 HTTP 吗?
android - 如何在 android webview 上确认 SPDY 的行为
大家好。
我正在调查 SPDY 在 android webview 上的行为。那么,你能告诉我如何确认我的 webview 是否在说 SPDY 吗?我已经构建了一个定制的 ROM,应用了以下补丁。
此致,
javascript - 使用 HTTP2/SPDY 时我应该缩小和连接 javascript 和 CSS 吗?
鉴于 HTTP2(和 SPDY)中连接重用和多路复用的优势以及 gzip 压缩的可用性,在构建过程中添加缩小和连接步骤的努力是否合理?
http - 您如何提供 SPDY HTTP 2.0 和 HTTP 1.1 之间的最佳兼容性?
HTTP 2.0 是建议的 SPDY 标准版本,如何在协议之间获得与浏览器的最大兼容性?两者都将回退到 HTTP 1.1,但是是否有只支持 SPDY 但不支持 HTTP 2.0 的浏览器,反之亦然?如果 SPDY 支持不可用但 HTTP 2.0 支持可用,SPDY 是否会回退到 HTTP 2.0?
java - 使用带有 HTTP 2.0 的 Netty
我想比较 SPDY 与 HTTP 2(最好是最近的草案)的性能。我用谷歌搜索了一下,发现 scalantra 有一个 Netty 3.x 的扩展(https://github.com/scalatra/netty-extension/find/master),但是如果我更喜欢使用新版本的 Netty可能的。有人知道适用于 Netty 4.x 或 5.x 的类似扩展吗?
nginx - 为什么 spdy 在 nginx 1.5.10 中不起作用?
我已经用 centos 6.5 上的 spdy 模块编译了 nginx 1.5.10,它运行没有问题,据我所知,spdy 显然没有被使用。
我在 nginx.conf 中的 listen 指令中添加了“spdy”选项并重新启动了服务器,但是各种 spdy 检查方法,例如可用的 firefox 插件和网站:https : //spdycheck.org/表明我的网站上没有使用 spdy。
nginx.conf 中的行是:
听 443 ssl spdy default_server;
我看到了这个帖子:如何通过 Nginx 设置 SPDY 协议?
并查看我是否需要更改 /etc/init.d/nginx 中的 DAEMON 或 PATH 行 - 但在我的版本中,这些行根本不存在。
nginx -V 的输出是:
nginx 版本:由 gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 构建的 nginx/1.5.10 启用 TLS SNI 支持配置参数:--prefix=/etc/nginx --sbin-path=/usr /sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx /access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx。锁定 --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/ var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx -- group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module -- with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_spdy_module --with-cc -opt='-O2 -g'
欢迎任何提示!