通过PHP获取HTTP2 fingerprint。 项目中除获取指纹部分,其余代码依赖项目amphp/http-server 2.0。特别是H2协议解析。
composer install
//index.php
$cer_path = '/path/to/domain.com.cer';
$key_path = '/path/to/domain.com.key';
$PeerName = 'domain.com';
$listen_uri = '0.0.0.0:443';
运行 php index.php
,随后在浏览器中打开你配置的域名链接 https://domain.com/
通过 composer 中的 autoload->addClassMap替换依赖 amphp 中的 Http2Parser.php 和 Http2Parser.php,下面介绍大概修改了什么。
- 添加函数 headleH2PF,将指纹信息赋值 $Client->h2fp 。
- 修改函数 handleConnectionWindowIncrement,handleHeaders,handlePriority,handleSettings,用于获取所需的指纹信息
- 修改函数 parsePriorityFrame
- $weight 应该是 无符号的8位整型
- 修改函数 parseHeaders
- $weight 应该是 无符号的8位整型
- 调用handlePriority时,$weight 会增加 256, 用于区分时来自parseHeaders 还是parsePriorityFrame