使用Node实现Http代理

开发一款基于nodejs的静态资源服务 emptyd-server
代理的出现是因为浏览器同源策略的存在
服务端实现代理的例子和方法很多 比如nginx 反向代理解决生产环境的跨域问题
再有http-server等一些第三方的包帮我处理 基本达到了开箱即用的体验
通常我们所说的代理来源于http1.1的定义,代理扮演的是「中间人」角色,对于连接到它的客户端来说,它是服务端;对于要连接的服务端来说,它是客户端。它就负责在两端之间来回传送 HTTP 报文
假如我通过代理访问A网站,对于A来说,它会把代理当做客户端,完全察觉不到真正客户端的存在,这实现了隐藏客户端IP的目的。
但是他们到底是如何实现的 ,值得一探究竟,下面是用原生nodejs 写个以后个代理

const http = require("http");
const url = require("url");
//首先启动本地服务器
http.createServer(function(req, res) {
   
  //客户端请求有两种方式,可以是对象,也可以是url字符串
  
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Node.js 中使用代理IP批量浏览网页,你可以使用 `axios` 库来发送 HTTP 请求,并通过设置代理实现。以下是一个示例代码: ```javascript const axios = require('axios'); // 代理IP列表 const proxyList = [ { ip: 'proxy_ip1', port: 'port1' }, { ip: 'proxy_ip2', port: 'port2' }, // 加入更多的代理IP ]; // 遍历代理IP列表 async function browseWithProxies(url) { for (const proxy of proxyList) { const proxyUrl = `http://${proxy.ip}:${proxy.port}`; const axiosInstance = axios.create({ proxy: { protocol: 'http', host: proxy.ip, port: proxy.port, }, }); try { const response = await axiosInstance.get(url); console.log(response.data); } catch (error) { console.error(`Error occurred for proxy ${proxyUrl}: ${error.message}`); } } } // 调用示例 const targetUrl = 'https://example.com'; browseWithProxies(targetUrl); ``` 在上述示例中,我们首先定义了一个代理IP列表 `proxyList`,其中每个元素包含了代理IP和对应的端口号。然后,我们通过遍历该列表,为每个代理IP创建一个独立的 `axios` 实例,并设置相应的代理配置。接着,使用该实例发送对目标网页的请求,并处理响应结果。 需要注意的是,该示例中仅支持使用 HTTP 代理。如果需要使用 HTTPS 代理,你需要相应地修改代理配置。 另外,值得注意的是,使用代理IP浏览网页时,代理IP的可用性和稳定性可能会有所不同。部分网站可能会限制或封禁代理IP,因此在使用时需要谨慎选择代理IP,并遵守相关网站的规则和使用条款。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值