请选择 进入手机版 | 继续访问电脑版

技术控

    今日:407| 主题:57462
收藏本版 (1)
最新软件应用技术尽在掌握

[其他] HTTP/2 基本帧说明

[复制链接]
╭ァ你的眼里 投递于 2016-10-8 22:49:38
351 6

HTTP/2 基本帧说明

HTTP/2 基本帧说明-1-技术控-HTTP,TLS,Wireshark,Chrome,部分
HTTP/2 在没有破坏原有的语义化(例如:方法、状态码、URIs、首部字段……)的基础上,更改了数据的封装格式以及客户端和服务器之间的数据传输机制,引入了二进制分帧层(Binary Framing)。采用新的编码机制,客户端与服务器之间的通信信息被分割成更小的帧,每个帧都是二进制编码。本文将对 HTTP/2 和 HTTP/1.1 的差异部分进行对比,同时对 HTTP/2 部分关键帧进行梳理说明。
  显示部分

  REQUEST:

     HTTP/2 VS HTTP/1.1
   

HTTP/2 基本帧说明

HTTP/2 基本帧说明-2-技术控-HTTP,TLS,Wireshark,Chrome,部分
    HTTP/2 Header部分新增冒号开头 authority method path scheme 首部,同时所有字段均小写
    RESPONSE:

  HTTP/2 VS HTTP/1.1
   

HTTP/2 基本帧说明

HTTP/2 基本帧说明-3-技术控-HTTP,TLS,Wireshark,Chrome,部分
所有字段均小写,其余基本相同
  流量部分

  调试工具:
  
       
  • Chrome net-internal   
  • Wireshark  
   Chrome net-internal:
   以 Chrome (版本:53.0.2785.143) 为例,通过其内置的 net-internals 工具(地址栏输入 chrome://net-internals/#http2 )即可查看当前活跃的 HTTP/2 会话,通过选择对应的会话 ID 可以查看经过处理后的全部帧信息。
   

HTTP/2 基本帧说明

HTTP/2 基本帧说明-4-技术控-HTTP,TLS,Wireshark,Chrome,部分

  Wireshark

   主流浏览器目前只支持 HTTP/2 Over TLS ,HTTP/2 网站也都使用了 HTTPS,关于 HTTP/2 是否需要使用 TLS,曾经也有很大的争论,但是出于安全性和用户隐私的考虑,最后决定所有 HTTP/2 的数据传输都需要进行加密。
  参见:
  A lot of focus of http2 has been to make it behave properly over TLS.SPDY is only done over TLS and there’s been a strong push for making TLS mandatory for http2 but it didn’t get consensus and http2 will ship with TLS as optional. However, two prominent implementers have stated clearly that they will only implement http2 over TLS: the Mozilla Firefox lead and the Google Chrome lead. Two of the leading web browsers of today. Reasons for choosing TLS-only include respect for user’s privacy and early measurements showing that new protocols have a higher success rate when done with TLS. This because of the widespread assumption that anything that goes over port 80 is HTTP 1.1 makes some middle-boxes interfere and destroy traffic when instead other protocols are communicated there. The subject about mandatory TLS has caused much hand- waving and agitated voices in mailing lists and meetings – is it good or is it evil? It is an infected subject – be aware of this when you throw this question in the face of a HTTPbis participant! Similarly, there’s been a fierce and long-going debate on whether http2 should dictate a list of ciphers that should be mandatory when using TLS, or if it perhaps should blacklist a set or if it shouldn’t require anything at all from the TLS “layer” but leave that to the TLS WG.
   那么如何调试 HTTP/2 的加密流量?
   最简单的方式是使用 NSS keylogging 配合 Wireshark (需版本支持)进行调试。
   NSS (Mozilla Network Security Services)
  是一组库目的是支持跨平台开发启用了安全性的多维客户机和服务器应用程序。用NSS构建的应用程序可以支持 SSL v2 和 v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 证书,以及其他安全标准。
  NSS 可以将密钥用特定格式写入日志(Key Log),这让外部程序得以借此解密 TLS 链接。Wireshark 1.6 版本以上可以用 Key Log 解密数据包。
   Firefox 和 Chrome 只会在系统环境变量中存在 SSLKEYLOGFILE 路径时才会生成它,先来加上这个环境变量(以 Linux 为例):
  1. export SSLKEYLOGFILE=~/保存地址/sslkeylog.log
复制代码
这里保存至当前用户的 tls 目录下:
  1. mkdir ~/tls
  2. export SSLKEYLOGFILE=~/tls/sslkeylog.log
复制代码
  你也可以将其写入当前用户的 .profile 文件里,这样每次登录时该环境变量都会 自动生效
   

HTTP/2 基本帧说明

HTTP/2 基本帧说明-5-技术控-HTTP,TLS,Wireshark,Chrome,部分

  更新 profile:
  1. source .profile
复制代码
打开 Chrome:
  1. google-chrome
复制代码
启动 Wireshark:
  1. sudo wireshark
复制代码
  接下来,选择监听网卡,打开 Wireshark 的首选项( preferences ) ,点击协议( Protocols )选项,将 SSL 配置面板的 (Pre)-Master-Secret log filename 一栏中的文件替换成 sslkeylog 文件位置 即可:
   

HTTP/2 基本帧说明

HTTP/2 基本帧说明-6-技术控-HTTP,TLS,Wireshark,Chrome,部分

      通过 filter 设置过滤规则,即可过滤出 HTTP/2 流量:
   

HTTP/2 基本帧说明

HTTP/2 基本帧说明-7-技术控-HTTP,TLS,Wireshark,Chrome,部分
    关键帧说明



上一篇:Android Push Notification Using Firebase Cloud Messaging (FCM)
下一篇:Kuliza Interview Experience | Set 4 (On-Campus)
Leonidki 投递于 2016-10-9 05:37:14
向楼主学习
回复 支持 反对

使用道具 举报

StevenMow 投递于 2016-10-10 18:23:07
楼下的接上
回复 支持 反对

使用道具 举报

沦的岱码 投递于 2016-10-12 02:36:11
有钱,就是任性,没钱,认命!
回复 支持 反对

使用道具 举报

seiko846100 投递于 2016-11-2 05:49:24
开启抢楼模式,楼下速度跟上!
回复 支持 反对

使用道具 举报

廖丹 投递于 2016-11-15 07:50:08
蜘蛛会不会上吊?
回复 支持 反对

使用道具 举报

11111112 投递于 2016-11-20 18:31:21
专业抢沙发的!哈哈
回复 支持 反对

使用道具 举报

我要投稿

推荐阅读


回页顶回复上一篇下一篇回列表
手机版/CoLaBug.com ( 粤ICP备05003221号 | 文网文[2010]257号 | 粤公网安备 44010402000842号 )

© 2001-2017 Comsenz Inc.

返回顶部 返回列表