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尚未大規模的使用起來,相關客戶端和組件還不完善,還存在一些問題,只作了簡單的一個測試:
相關文章
相關標籤/搜索