Skip to content
 
 

Repository files navigation

http2chrome

A fork of golang.org/x/net that adds Chrome HTTP/2 fingerprint compatibility, designed to pair with uTLS HelloChrome_Auto for a complete Chrome fingerprint stack at both the TLS and HTTP/2 layers.

What this changes

SETTINGS order - 2,4,5,6 -> 1,2,4,6 HEADER_TABLE_SIZE - 4096 -> 65536 INITIAL_WINDOW_SIZE - 65535 -> 6291456 MAX_HEADER_LIST_SIZE - 10485760 -> 262144 WINDOW_UPDATE - 1GB -> 15663105 PRIORITY frames - none -> static Chrome tree Pseudo-header "order" - :authority first -> :method first Header "order" - map (random) -> Chrome observed order

Usage

//in go.mod
replace golang.org/x/net => github.com/ajithor/http2chrome v0.0.3

//in your main code where http2 is being setup
transport := &http2.Transport{
    ChromeCompatConfig: http2.ChromeCompatConfig{Enabled: true},
}

//Pair with uTLS
uConn := utls.UClient(conn, &utls.Config{
    NextProtos: []string{"h2"},
}, utls.HelloChrome_Auto)

What this does NOT do

  • Does not set header values — caller is responsible for authentic Chrome header values.
  • Does not handle HPACK dynamic table state across requests
  • Chrome header order may vary slightly by Chrome version and request type

References

About

[mirror] Go supplementary network libraries

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages