HTTP学习补充一

1 HTTP协议协商

1.1 NPN

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

协商过程:chrome

  • 服务端在收到客户端的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尚未大规模的使用起来,相关客户端和组件还不完善,还存在一些问题,只作了简单的一个测试:
相关文章
相关标签/搜索