V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
holinhot
V2EX  ›  问与答

调用 HTTPS API 默认是会用会话复用的吗

  •  
  •   holinhot · 2020-08-29 19:44:00 +08:00 · 1128 次点击
    这是一个创建于 1550 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果不复用,并发上千不,是得上千次握手,好像是很浪费性能。浏览器应该是会复用,不然加载几百图片都得握手。

    6 条回复    2020-08-30 22:29:14 +08:00
    arloor
        1
    arloor  
       2020-08-29 22:04:25 +08:00
    http1.1 做的事情是让一条 tcp 连接能传输多个请求-响应(不过多个请求一定是串行的)
    http2 做的事情是一条 tcp 链接能同时并行多个请求-响应

    从 http1.0 到 http1.1 再到 http2,一直在追求更有效的链接复用。而 https 其实就是 http over tls,也是遵循 http 协议的。目前 http2 也比较普遍了,也就是并行的多路复用现在在浏览器中已经比较普遍了。对于图片加载,js 资源加载,css 资源加载这种静态资源,或者服务端渲染的东西,连接复用程度还是比较高的。

    但是,Ajax 这种请求,不能确定是否使用了 http 的长连接,如果是短连接(一个请求-响应后就断开),则没有复用 tcp 连接。
    holinhot
        2
    holinhot  
    OP
       2020-08-30 02:09:36 +08:00
    @arloor 例如使用 curl -i https://google.com 这样执行 100 次,SSL 会话是会复用的吗
    holinhot
        3
    holinhot  
    OP
       2020-08-30 02:10:32 +08:00
    @holinhot 似乎 curl 退出后并不会保存任何会话
    msg7086
        4
    msg7086  
       2020-08-30 09:27:20 +08:00
    都退出了还怎么保存。会话的前提是端口上的连接还在。程序退出了,连接当然都会被杀掉。
    ysc3839
        5
    ysc3839  
       2020-08-30 19:20:44 +08:00 via Android
    要看具体是什么 http 库的,浏览器显然会复用连接。
    至于命令行的 curl,是不会的,而且操作系统应该有限制,进程退出后会断开 TCP 连接。
    holinhot
        6
    holinhot  
    OP
       2020-08-30 22:29:14 +08:00
    @ysc3839 那个 IOS 或安卓 App 内调接口会复用连接吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:40 · PVG 13:40 · LAX 21:40 · JFK 00:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.