Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: HTTP/3 (QUIC) Support #104

Open
sjid6ewh opened this issue Feb 16, 2024 · 2 comments
Open

[Feature Request]: HTTP/3 (QUIC) Support #104

sjid6ewh opened this issue Feb 16, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@sjid6ewh
Copy link

Describe the feature / enhancement and how it would improve things

QUIC is a next generation protocol based on UDP mainly for http3.
Major web browsers such as Chrome, Safari, and Firefox already support HTTP/3 (QUIC).
On the server side, Google, Cloudflare, etc. are already using http3, and the number of servers that support it is increasing. The proportion of http3 traffic to total http traffic is also increasing.
I think the purpose of developing the TLS client is to rewrite TLS information and send http(https) requests equivalent to web browsers and other http clients.
However, if the TLS client does not support http 3, it will not be possible to reproduce http3 requests from web browsers, etc.
It is expected that http3 traffic will continue to increase, so in the future the TLS client should support http3 in order to reproduce http3 requests.

Describe how your proposal will work, with code and/or pseudo-code

http3 and quic are complicated, so it will be difficult to implement them from scratch.
I think it can be implemented relatively easily by partially modifying quic-go and incorporating it into the tls client. (quic-go is under the MIT License, so it is no problem to modify it and use it.)
By replacing crypto/tls used in quic-go with utls, it will be able to change the tls information.
I think it would be even better if quic-go added the ability to specify the order of request headers and the ability to set a proxy that supports UDP (QUIC) on the client.

@sjid6ewh sjid6ewh added the enhancement New feature or request label Feb 16, 2024
@DtyCv
Copy link

DtyCv commented Feb 26, 2024

@sjid6ewh A fork of quic-go that uses the extended version of the tls library and can be modified the tls fingerprint and the quic fingerprint has been published on gitlab.
Therefore, there is no need to go through the hassle of replacing crypto/tls with utls.
By using this fork of quic-go, it is very easy to implement HTTP3 QUIC on the tls client.

@mastercho
Copy link

That would be good addition

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants