http_proxy 是否会自动在 Linux 中为所有应用程序工作?
Does http_proxy automatically work in Linux for all applications?
如果我export http_proxy
,那么curl
会自动使用代理。这是因为 curl
在源代码中查找 http_proxy
并在内部设置代理,还是它自动工作?似乎许多其他应用程序自动支持 http_proxy,所以我认为 http_proxy 可能由 Linux 处理??
我正在编写一个需要支持代理(http_proxy ENV)的应用程序,想知道我是否应该在源代码中处理http_proxy。
来自:
https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html
libcurl respects the proxy environment variables named http_proxy, ftp_proxy, sftp_proxy etc. If set, libcurl will use the specified proxy for that URL scheme. So for a "FTP://" URL, the ftp_proxy is considered. all_proxy is used if no protocol specific proxy was set.
Setting the proxy string to "" (an empty string) will explicitly disable the use of a proxy, even if there is an environment variable set for it.
运行 通过工作代理,我发现它不一致。许多程序寻找 http_proxy
,但其他程序使用它们自己的配置文件。我不知道使用哪个指南,这取决于您用来访问网络的库。
如果您正在使用 curl
,the API curl_easy_setopt(CURL *handle, CURLOPT_PROXY, char *proxy)
says:
libcurl respects the proxy environment variables named http_proxy, ftp_proxy, sftp_proxy etc. If set, libcurl will use the specified proxy for that URL scheme. So for a "FTP://" URL, the ftp_proxy is considered. all_proxy is used if no protocol specific proxy was set.
If no_proxy (or NO_PROXY) is set, it is the exact equivalent of setting the CURLOPT_NOPROXY option.
The CURLOPT_PROXY and CURLOPT_NOPROXY options override environment variables.
curl 应该读取环境变量 http_proxy
和设置代理,而不是 linux 系统。
Is this because curl looks up http_proxy and setup proxy internally in the source code or it just automatically works?
curl
获取 curl/lib/url.c 中环境变量 http_proxy
的值并进行处理。它不起作用 "automatically"。
I think maybe http_proxy is handled by Linux?
不,不是。它由 curl 明确处理。
wondering should I handle http_proxy in the source code.
您可以保持与 curl
等其他工具的兼容性,并在您的应用程序中支持 http_proxy
环境变量。
如果我export http_proxy
,那么curl
会自动使用代理。这是因为 curl
在源代码中查找 http_proxy
并在内部设置代理,还是它自动工作?似乎许多其他应用程序自动支持 http_proxy,所以我认为 http_proxy 可能由 Linux 处理??
我正在编写一个需要支持代理(http_proxy ENV)的应用程序,想知道我是否应该在源代码中处理http_proxy。
来自: https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html
libcurl respects the proxy environment variables named http_proxy, ftp_proxy, sftp_proxy etc. If set, libcurl will use the specified proxy for that URL scheme. So for a "FTP://" URL, the ftp_proxy is considered. all_proxy is used if no protocol specific proxy was set.
Setting the proxy string to "" (an empty string) will explicitly disable the use of a proxy, even if there is an environment variable set for it.
运行 通过工作代理,我发现它不一致。许多程序寻找 http_proxy
,但其他程序使用它们自己的配置文件。我不知道使用哪个指南,这取决于您用来访问网络的库。
如果您正在使用 curl
,the API curl_easy_setopt(CURL *handle, CURLOPT_PROXY, char *proxy)
says:
libcurl respects the proxy environment variables named http_proxy, ftp_proxy, sftp_proxy etc. If set, libcurl will use the specified proxy for that URL scheme. So for a "FTP://" URL, the ftp_proxy is considered. all_proxy is used if no protocol specific proxy was set.
If no_proxy (or NO_PROXY) is set, it is the exact equivalent of setting the CURLOPT_NOPROXY option.
The CURLOPT_PROXY and CURLOPT_NOPROXY options override environment variables.
curl 应该读取环境变量 http_proxy
和设置代理,而不是 linux 系统。
Is this because curl looks up http_proxy and setup proxy internally in the source code or it just automatically works?
curl
获取 curl/lib/url.c 中环境变量 http_proxy
的值并进行处理。它不起作用 "automatically"。
I think maybe http_proxy is handled by Linux?
不,不是。它由 curl 明确处理。
wondering should I handle http_proxy in the source code.
您可以保持与 curl
等其他工具的兼容性,并在您的应用程序中支持 http_proxy
环境变量。