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

Clarify some questions regarding this library #461

Closed
0x676e67 opened this issue Feb 22, 2025 · 0 comments
Closed

Clarify some questions regarding this library #461

0x676e67 opened this issue Feb 22, 2025 · 0 comments
Labels
question Further information is requested

Comments

@0x676e67
Copy link
Owner

0x676e67 commented Feb 22, 2025

简体中文

如果你更喜欢该客户端的其它语言绑定,请看tracing进度:

  1. rquestreqwest有什么区别?

rquestreqwest的一个独立分支,用于emulation浏览器的HTTP/WebSocket请求

  • 功能方面没有什么区别,在原基础上修复了请求HTTP Version协商,增强了链接池的管理,支持代理/网络接口/IP地址轮换,以及客户端初始化后修改客户端配置(但不是线程安全的修改,存在多个副本时,修改只对当前副本生效,但克隆副本很便宜。这个问题在v3版本解决)。

  • rquest支持请求级别的代理请求,轮换代理自定义代理头

  • rquest支持自定义标头排序

  • rquest的TLS后端仅支持BoringSSL,该后端与OpenSSL一样难以使用和编译...

  • rquest支持emulation现代浏览器的TLS/HTTP2配置

  • rquest支持HTTP/1.1,HTTP/2升级到WebScoket

  • rquest不支持同步API和WASM(能编译成功,但没有计划适配)

  1. 不使用impersonate/emulation 时与正常客户端有什么区别吗?

实际上,使用与不使用impersonate/emulation都与正常客户端没有什么区别,TLS/HTTP2配置在每一个HTTP客户端都有一组默认的参数配置,而impersonate就是把这一组默认的参数配置设置为与浏览器TLS/HTTP2配置一致,仅此而已

English

If you prefer another language binding for this client, see the tracing progress:

  1. What’s the difference between rquest and reqwest?

rquest is an independent branch of reqwest, designed for emulating HTTP/WebSocket requests from browsers.

  • Functionality-wise, there is no significant difference. It fixes HTTP Version negotiation for requests, enhances connection pool management, supports proxy/network interface/IP address rotation, and allows modifying the client configuration after initialization (though it’s not thread-safe, and changes only affect the current instance, but cloning instances is cheap. This issue is resolved in v3).

  • request supports request-level proxy requests, proxy rotation, and custom proxy headers

  • rquest supports custom header sorting

  • The TLS backend only supports BoringSSL, which is as difficult to use and compile as OpenSSL…

  • Support TLS/HTTP2 configuration for emulation modern browsers

  • Supports HTTP/1.1, HTTP/2, and upgrades to WebSocket.

  • rquest does not support synchronous API and WASM (it can be compiled successfully, but there is no plan to adapt)

  • Is there any difference from a normal client when impersonate/emulation is not used?

In fact, there’s no difference between using or not using impersonate/emulation compared to a normal client. TLS/HTTP2 configurations come with a default set of parameters for every HTTP client, and impersonate simply sets these parameters to match the browser's TLS/HTTP2 configuration—nothing more.

@0x676e67 0x676e67 added the question Further information is requested label Feb 22, 2025
@0x676e67 0x676e67 pinned this issue Feb 22, 2025
@0x676e67 0x676e67 closed this as completed Mar 5, 2025
@0x676e67 0x676e67 unpinned this issue Mar 6, 2025
@0x676e67 0x676e67 pinned this issue Mar 6, 2025
@0x676e67 0x676e67 unpinned this issue Mar 9, 2025
@0x676e67 0x676e67 pinned this issue Mar 12, 2025
@0x676e67 0x676e67 unpinned this issue Mar 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant