HTTP 指紋是由一系列特徵構成的,服務端檢查的特徵越詳細(反爬級別越高),偽裝的難度就越高,當然如果我們把所有特徵全都偽裝了,那就一定就能騙過服務端了。
常見的一些特徵:
User-Agent 的值。
Header 及其排列順序。
TLS 指紋,也就是TLS 握手時,客戶端傳送 ClientHello 的特徵。包含客戶端所支援的加密套件列表及其排列順序、客戶端支援的TLS版本、壓縮方式、TLS extensions 列表及其排列順序等。
對於 HTTP2,還有更多額外可以檢查的特徵:
HTTP2 settings 幀中的值列表及其排列順序。
HTTP2 WINDOW_UPDATE 幀的值。
HTTP2 Priority 幀列表及其排列順序。
偽頭(Pseudo-Header) 的順序。
請求頭及其排列順序,以及 header 幀中 flag 與 priority 選項的值。