当你在 Go 中配置
http.Client
并使用 HTTP 代理时,Go 如何处理 DNS 请求?
我怀疑解析的名称是本地的,然后请求被代理。
这是正确的吗?或者 DNS 请求是否也以某种方式通过代理?
proxiedClient := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyURL(proxyURL),
},
}
DNS 是在本地完成的,除非在代码中使用 DNS 库以非本地行为显式执行 DNS 查询。
一旦主机名被 DNS 解析(通常是本地),那么
http.Client
就可以用来代理实际的 HTTP/S 请求