与实现HTTP Web服务器相比,如何实现HTTP代理,有何区别?是否有关于此主题的权威指南或RFC或有用的书籍?
我有这个Dockerfile:
FROM node:argon
ENV http_proxy http://user:pass@proxy.company.priv:3128
ENV https_proxy https://user:pass@proxy.company.priv:3128
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
EXPOSE 8080
CMD [ "npm", "start" ]
但是我在npm安装步骤中得到了这个错误:
npm info如果它以ok npm信息结束使用npm@2.14.12 npm info使用node@v4.2.6 npm warn package.json deployer-ui@1.0.0没有说明npm WARN package.json deployer-ui@1.0. 0没有存储库字段.npm WARN package.json deployer-ui@1.0.0没有自述文件数据npm信息预安装deployer-ui@1.0.0 npm信息尝试注册表请求尝试#1在7:09:23 AM npm http请求GET https://注册表. npmjs.org/body-parser npm信息尝试注册表请求尝试#1在7:09:23 AM npm http请求GET https://registry.npmjs.org/express npm info retry将重试,最后一次尝试时出错:错误:无法建立隧道套接字,因为=写EPROTO npm信息重试将重试,最后一次尝试时出错:错误:隧道套接字无法建立,原因=写入EPROTO
我想这是由于代理.我也尝试过
RUN npm config set proxy http://user:pass@proxy.company.priv:3128 …在问这个问题之前,我做了很多搜索和实践试验。
我找到了一个关于如何使用 Node.js 编写 http 代理的(非英语)教程。
到目前为止,我所知道和尝试过的:
SSL proxyFirefox中的代理设置字段和Secure在IE代理设置字段(Windows)都有关设置HTTP隧道。如果设置了SSL proxy或Secure proxy,当浏览器想要连接到 https 站点时,它会发送CONNECT请求而不是普通请求。该CONNECT要求是纯文本,这样防火墙可以看到我想要连接到并切断连接主机什么。所以我从一开始就在考虑是否可以使用https与代理服务器对话。我阅读了所有相关的帖子,但找不到直接谈论这个的答案。有些答案还说“没有 https 代理服务器这样的东西”。
但是教程说这是可以做到的(客户端和代理服务器之间的 HTTPS 没有其他变化?。所以我试了一下。我用我网站的证书将服务器更改为 https。但最终它只适用于 Chrome 中的Proxy SwitchOmega。它不适用于传统设置,例如 Firefox 代理或 IE 代理设置。
代理 SwitchOmega 设置:
Scheme|Protocol|Server|Port
....  | https  | .... |...
https如果我启动 https 服务器,我必须在这里选择协议。同样,http如果我启动 …
htt(p|ps)当我向https网站发出请求时,在代理中的第二个参数中使用的正确方法是什么?我在下面使用的代理只是一个占位符.
当我尝试这样(它的工作原理):
proxies = {
  'https': 'http://79.170.192.143:34394',
}
当我尝试这样(它也有效):
proxies = {
  'https': 'https://79.170.192.143:34394',
}
htt(p|ps)代理中的第二个只是占位符http吗?如果我向网站发出请求怎么办?
在我的公司环境中,有一个透明的代理,需要凭据才能访问Internet(每四个小时一次).在我的应用程序中,我成功通过了以下凭据:
var client = new WebClient();
client.Credientals = new NetworkCredential("username", "password");
string result = client.DownloadString("http://...");
// this works!
但是,当我的初始请求是"https://"url时,会发生异常抛出:"底层连接已关闭:无法为SSL/TLS安全通道建立信任关系."
现在我目前的工作是:
我想知道是否有更好/更清洁的方法来做到这一点?
proxy ×5
http ×2
c# ×1
docker ×1
http-proxy ×1
https ×1
node.js ×1
npm ×1
python ×1
python-3.x ×1
ssl ×1
web-scraping ×1