标签: http2

与 HTTP/2 相比,protobuf 是否提供了大小和速度增益?

HTTP/2 是二进制的,protobuf 也是如此。

如果我在我的服务器上使用 HTTP/2,那么如果我使用 protobuf 来减少消息的大小,或者将 JSON gzipped 并通过 HTTP/2 发送,我是否仍然需要使用 protobuf?

JSON 似乎更易于人类阅读,更易于调试,并且不需要额外的客户端库。

javascript protocol-buffers http2

3
推荐指数
1
解决办法
368
查看次数

如何通过javascript检测浏览器环境中浏览器是否支持http2?

我想combo通过环境是否支持http2来确定是否使用。但是,我找不到检查浏览器是否支持 http2 的方法。

先感谢您。

javascript browser http2

3
推荐指数
1
解决办法
4210
查看次数

如何查看 Web 请求/响应是否使用 QUIC 和/或 HTTP/2?

我正在尝试使用 HTTP/2、HTTP1.1、QUIC 和 TCP 在 Chromium 中进行一些测试。我想尝试协议的不同组合。不过,我在浏览器中遇到了一些非常奇怪的行为。当我想尝试 HTTP1.1+QUIC 时,我使用以下命令启动浏览器:

chromium-browser --disable-http2 --enable-quic
Run Code Online (Sandbox Code Playgroud)

我可以在 chrome://net-internals/ 上看到 HTTP2 已禁用,而 QUIC 已启用。但是,当我向支持 HTTP2 和 QUIC 的服务器发出 Web 请求时,我得到以下信息: 在此输入图像描述

http2 enabled: false当它在 chrome://net-internals/如此明确地说明时,为什么会说使用了 HTTP/2 ?

我之前已经成功使用 QUIC 运行 HTTP1.1。QUIC 是否已更新为仅适用于 HTTP/2?或者“协议”字段是否显示错误的协议?

我很想知道是否有人成功地将 QUIC 与 HTTP1.1 结合使用

非常感谢!

chromium http2 quic

3
推荐指数
1
解决办法
2372
查看次数

如何使用 Tomcat 8.5 和 Java SE 8 支持 HTTP2

我正在研究 HTTP2 以及我们在应用程序中使用它的可能性。目前我们正在 Java 8 中开发并使用 Tomcat 8.5.24(这意味着我们使用 Servlet 3.1)。我在网上搜索过,但找不到任何关于如何利用 HTTP2 功能的资源。

我能找到的唯一示例是使用 Servlet 4.0(从我看到的情况来看,它仅受 Tomcat 9 支持)并且唯一展示的是在PushBuilder客户端请求和 html 页面时使用 a来推送 css 和 js 文件。

我能否通过 HTTP2 使用 Servlet 3.1 提供的异步 API?Servlet 3.1 是否支持 HTTP2?如果没有,Tomcat 8.5 支持 HTTP2 的意义何在?仅用于推送网络资源?

java tomcat servlets http2

3
推荐指数
1
解决办法
4167
查看次数

grpc中不安全连接的含义是什么?

gRPC 基于http2哪个,必须使用 ssl。但我发现我可以创建使用不安全的服务器。

我想知道insecure不使用 ssl 或为 http2 使用预定义证书的方法?

ssl http2 grpc

3
推荐指数
1
解决办法
3023
查看次数

半关闭在 http2 中有什么作用?http2中流状态的本地和远程之间有什么区别?

半关闭在 http2 中有什么作用?http2中流状态的本地和远程之间有什么区别?

我已经看到:reserved(local) --> half closed(remote)在流的生命周期中。

为什么是本地到远程?为什么不reserved(local) --> half closed(local)呢?

https http netty http2

3
推荐指数
1
解决办法
837
查看次数

在 Apache 2.4 中启用 http/2 不起作用

我们正在尝试在 Apache 2.4 上启用 http/2,但没有成功。服务器操作系统为 FreeBSD 11.2,OpenSSL 版本为 1.0.2o。

我们拥有真实有效的 SSL 证书,在 Qualys SSL 服务器测试中评级为 A+。

日志文件中没有错误,服务器重新启动没有任何问题或错误。使用 https:// 访问网站有效,但浏览器总是降级到 http/1.1。

我们在我们的虚拟部分有这个:

<Directory />
    Require         all granted
    AllowOverride   All
    SSLOptions      +StdEnvVars
</Directory>

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions      +StdEnvVars
</FilesMatch>

H2Direct on
Protocols h2 h2c http/1.1

Options                    None
SSLEngine                  On
SSLHonorCipherOrder        On
SSLSessionTickets          Off
SSLCompression             Off
SSLCipherSuite             "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"
SSLProtocol                All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

SSLCertificateFile          "/usr/local/www/apache24/certs/server.crt"
SSLCertificateKeyFile       "/usr/local/www/apache24/certs/server.key"
SSLCertificateChainFile     "/usr/local/www/apache24/certs/intermediate.crt"

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Frame-Options DENY
Header always set …
Run Code Online (Sandbox Code Playgroud)

apache ssl http2

3
推荐指数
1
解决办法
3774
查看次数

我们还需要一个连接池来连接 HTTP2 的微服务吗?

由于 HTTP2 支持多路复用,我们还需要一个连接池来进行微服务通信吗?如果是,拥有这样的游泳池有什么好处?

示例:服务 A => 服务 B

以上两种服务都只有一个实例可用。

多个连接可能有助于克服每个连接(套接字)的操作系统缓冲区大小限制?还有什么?

rpc connection-pooling http2 microservices

3
推荐指数
1
解决办法
1524
查看次数

HTTP/3 如何处理丢包?

HTTP/2 和 HTTP/3 之间的主要区别之一是从 TCP 切换到 UDP。

据我了解,TCP 通过验证没有数据包丢失来验证数据完整性。再次请求丢失的任何数据包以确保正确接收所有数据。

对于 UDP,没有这样的验证。如果数据包丢失,那就这样吧。

话虽如此,如果我在 HTTP/3 上发出请求并且数据包丢失,是否有一种机制可以确保我获得所有数据,或者我的响应是否有丢失数据包的风险?

udp tcp http http2 http3

3
推荐指数
1
解决办法
159
查看次数

如何在 Envoy 中禁用路由超时?

我正在尝试使用 http2/grpc 流媒体,但我的连接在 15 秒内中断。关于超时设置的文档说将超时设置为 0。但是,当我这样做时,Envoy 在启动时抛出错误,抱怨 0 不是 Duration 类型的有效值。

如何禁用路由超时?

这是我的 Envoy 配置 .yml

    admin:
      access_log_path: "/dev/null"
      address:
        socket_address:
          address: 0.0.0.0
          port_value: 8801
    
    static_resources:
      listeners:
      - address:
          socket_address:
            address: 0.0.0.0
            port_value: 11001
        filter_chains:
        - filters:
          - name: envoy.filters.network.http_connection_manager
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
              stat_prefix: ingress_http
              http_filters:
              - name: envoy.filters.http.router
              route_config:
                name: grpc_route
                virtual_hosts:
                - name: grpc_service
                  domains: ["*"]
                  routes:
                  - name: grpc_proxy
                    match:
                      prefix: "/"
                    route:
                      timeout: 0 # How do I disable the …
Run Code Online (Sandbox Code Playgroud)

networking http2 grpc envoyproxy

3
推荐指数
1
解决办法
638
查看次数