zoukankan      html  css  js  c++  java
  • HTTP学习补充一

    1 HTTP协议协商

    1.1 NPN

    NPN:Next Protocol Negotiation,是由Google公司开发的用于SPDY进行协议协商扩展。
    

    协商过程:

    • 服务端在收到客户端的client hello后,把自己支持的协议通过Server Hello
      发送给客户端
    • 客户端拿到清单后,选择一个协议在Change Cipher Spec 之后加密发送给服务端

    1.2 ALPN

    ALPN:Application Layer Protocol Negotiation,是IETF制定的在HTTP/2.0中使用的协议协商扩展
    

    协商过程:

    • 客户端把自己支持的清单通过client hello发送给服务端
    • 服务端在选择一个协议后通过server hello告诉客户端应该使用哪个协议(会比NPN少一步数据交换)


    1.3 说明

    • 最新的chrome和firefox已经不支持NPN
    • 要支持ALPN须将openssl升级至1.0.2版本
    • Java中要使用okhttp+openjdk+alpn-boot才能访问http2:JVM启动参数 -Xbootclasspath/p:./alpn-boot-8.1.9.v20160720.jar

    2 性能简单测试

    目前国内大多数网站还不支持http/2,http/2还没有大规模的使用起来,相关客户端和组件还不完善,还存在一些问题,只做了简单的一个测试:
    
    • 5000次访问数据、单线程、异步方式

      http:5条长连接 1568ms

      https:5条长连接 2284ms

      http2:1条连接 2083ms

    • 5000次访问数据、单线程、异步方式

      http:5条长连接 1478ms

      https:5条长连接 2057ms

      http2:5条连接 2008ms

    • 5000次访问数据、单线程、同步方式

      http:1条长连接 1992ms

      https:1条长连接 2884ms

      http2:1条连接 2879ms

    • 5000次访问数据、多线程、异步方式

      http:5条长连接 1474ms

      https:5条长连接 1956ms

      Http2:5条连接 2041ms

    • 5000次访问数据、多线程、同步方式

      http:5条长连接 1053ms

      https:5条长连接 1578ms

      http2:5条连接 1742ms

  • 相关阅读:
    js 安全
    js压缩 uglify(2)
    js压缩 uglify
    抢红包算法 java
    手机调试
    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
    字符集编码 定长与变长
    db2 sqlcode
    2015.7.14(大盘结束红色,中色连坐4T)
    2015.7.10(全部涨停!想逢高出货,但是担心周一创新高)
  • 原文地址:https://www.cnblogs.com/TomSnail/p/6149785.html
Copyright © 2011-2022 走看看