V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jdz
V2EX  ›  程序员

看了下百度 https 网址既提供 http2 也提供 http1.1, 怎样指定 http2 呢. 使用 curl 怎么指定参数都无效 浏览器也是 http1.1

  •  
  •   jdz · 2022-01-11 10:46:08 +08:00 · 1966 次点击
    这是一个创建于 808 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2022-01-11 11:35:45 +08:00
    ysc3839
        1
    ysc3839  
       2022-01-11 10:50:54 +08:00
    那就说明不支持吧
    aladdinding
        2
    aladdinding  
       2022-01-11 10:51:53 +08:00   ❤️ 1
    ssl 握手中有个啥扩展 可以协商接下来使用啥协议 如果支持 h2 服务端就会返回支持 h2
    unco020511
        3
    unco020511  
       2022-01-11 11:00:05 +08:00
    Connection: Upgrade, HTTP2-Settings
    Upgrade: h2c
    检索关键词: http 协议升级协商机制
    yaoyao1128
        4
    yaoyao1128  
       2022-01-11 11:09:23 +08:00   ❤️ 1
    多个网站测都是:www.baidu.com
    HTTP/2 protocol is not supported.

    ssllabs 测试:
    ALPN Yes http/1.1
    NPN Yes http/1.1

    本地测试:
    ```bash
    > is-http2 www.baidu.com
    × HTTP/2 not supported by www.baidu.com
    > curl -sI --http2 百度 |grep HTTP
    HTTP/1.1 200 OK
    ```
    所以暂时应该是不支持……猜测是向下兼容 IE 所以不能直接升级,SSL3 和 TLS1.0 可能有 bug ?
    darknoll
        5
    darknoll  
       2022-01-11 11:19:09 +08:00
    你说的 http2 是 cdn 来的吧
    jdz
        6
    jdz  
    OP
       2022-01-11 11:21:13 +08:00 via Android
    @yaoyao1128 我用的 curl -v 查看的,offerring http2 ,然后跟着 offering hpttp1.1 ,你可以试试
    2i2Re2PLMaDnghL
        7
    2i2Re2PLMaDnghL  
       2022-01-11 11:26:43 +08:00
    ALPN 信息不代表真实提供的选项
    2i2Re2PLMaDnghL
        8
    2i2Re2PLMaDnghL  
       2022-01-11 11:32:39 +08:00   ❤️ 2
    我再看了一遍
    offering 似乎说的是你在 ClientHello 的时候 offer 了 h2 和 http/1.1
    之后 ALPN, server accepted to use http/1.1

    可以看一下 rfc7301
    ClientHello 的时候提供 list of protocols ,ServerHello 的时候提供 selected protocol 并开始密钥交换
    yaoyao1128
        9
    yaoyao1128  
       2022-01-11 11:35:45 +08:00 via iPhone   ❤️ 3
    @jdz ALPN 的过程是这样的
    * ALPN, offering h2
    * ALPN, offering http/1.1
    * ALPN, server accepted to use http/1.1
    这里是 Client 给 server 发一个列表 说我支持什么 之后 server 从里面选择一个进行返回 说我支持这个我们用这个交换 然后 server 给 client 说我的证书是怎么怎么的
    所以说 alpn 的前两个是客户端能提供(或者说 能处理)的协议 相比较 npn 多了一个 hello 的过程确定协议
    alpn 是 rfc7301 的内容
    datatracker.ietf.org/doc/html/rfc7301
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5369 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 08:57 · PVG 16:57 · LAX 01:57 · JFK 04:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.