您的位置: 首页 > 新闻资讯 > > 正文

实战中看懂HTTP代理原理

发布时间:2021年01月22日 来源:

    (一)HTTP代理原理


    HTTP 客户端向代理发送请求报文,代理服务器需要正确地处理请求和连接(例如正确处理 Connection: keep-alive),同时向服务器发送请求,并将收到的响应转发给客户端。


image.png


    举个例子,当我们在浏览器地址栏输入URL(网址)后,按下回车键之后会执行以下步骤:浏览器先向DNS服务器请求解析该URL(网址)中的域名所对应的IP地址;解析出IP地址后,根据该IP地址和默认端口 80,和服务器建立TCP连接;浏览器发出读取文件URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送给服务器;服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器;释放TCP连接;浏览器将该html文本并显示内容。


    (二)代码实现


    数据经过代理服务器后可能会经过修改,要小心数据有效性


    1   │ var net = require('net')


    2   │ var url = require('url')


    3   │ var http = require('http')


    4   │


    5   │ var hostname = '127.0.0.1'


    6   │ var port = '8888'


    7   │


    ===================================


    这个服务从请求报文中解析出请求 URL 和其他必要参数,新建到服务端的请求,


    并把代理收到的请求转发给新建的请求,最后再把服务端响应返回给浏览器。


    ===================================


    8   │ var request = (creq,cres)=>{


    9   │     console.log(creq.header);


    10   │     var u = url.parse(creq.url);


    ===============


    重新构建请求


    ===============


    11   │     var options = {


    12   │         hostname : u.hostname,


    13   │         port : u.port || 80,


    14   │         path : u.path,


    15   │         method : creq.method,


    16   │         headers : creq.headers,


    17   │     };


    18   │


    ==================


    得到响应


    ==================


    19   │     var preq = http.request(options, (pres)=>{


    20   │         cres.writeHead(pres.statusCode,pres.headers);//估计是添加头


    21   │         pres.pipe(cres);//装入


    22   │     }).on('error',function(e){


    23   │         cres.end();


    24   │     });


    25   │     creq.pipe(preq);


    26   │ }


    27   │


    ==================================


    这个服务从 CONNECT 请求报文中解析出域名和端口,


    创建到服务端的 TCP 连接,并和 CONNECT 请求中的 TCP 连接串起来,


    最后再响应一个 Connection Established 响应。


    ===============================


    28   │ var connect = (creq, csock) =>{


    29   │     console.log(creq.headers);


    30   │


    31   │     var u = url.parse("http://"+creq.url);


    32   │


    33   │     var psock = net.connect(u.port, u.hostname, ()=>{


    34   │         csock.write('HTTP/1.1 200 Connection Established\r\n\r\n');


    35   │         psock.pipe(csock);


    36   │     }).on('error',(e)=>{


    37   │         csock.end();


    38   │     });


    39   │     csock.pipe(psock);


    40   │ }


    41   │


    42   │


    43   │ var proxy = http.createServer().on('request',request).on('connect',connect);


    44   │ proxy.listen(port, hostname,() =>{


    45   │     console.log("Proxy run in 127.0.0.1:8888");


    46   │ })


    以上就是HTTP代理原理及其实现的步骤。


相关文章内容简介

1 代理IP不仅仅解决网络限制

    代理IP不仅仅解决网络限制,很多人都知道使用代理IP可以解决网络的限制问题,例如注册帐号、访问外国网站、软件等。这是代理IP的主要用途,但其实还有很多用途供我们使用。    代理IP不仅仅解决网络限制    1.加快下载速度。有部分网站对下载是有限制的,例如限制一个IP只能下载一个,出现这样的情况可以通过代理IP工具,同时多IP一起下载了。    2.隐藏真实IP。代理IP开启后,真正的IP会被代理IP完全隐藏,这样保证了上网及个人信息的安全。    3.共享上网。通过代理服务器,可以对局域网有线宽带加以利用,提高内网用户的上网速度。同时还可以当做防火墙,保护内网的安全。    通过以上的介绍,相信大家都了解了代理IP的用途有很多。万变ip代理IP覆盖全国多城市,IP可用率高达97%,还可以自动切换IP,操作简单,再也不用担心IP被封的困扰。... [阅读全文]

2 私密代理ip适合大众使用吗?

    私密代理ip适合大众使用吗?其实私密代理而且这种http代理ip资源在之前的人们耳中并不时常听到,随着时代的发展,他开始在人们的生活中活跃起来,越来越多的人开始对它有所了解。    如今信息非常的发达,科技的发展也日新月异,人们借助科技的发展和信心为自己的生活也带来了很多改变。但是在社会发展越来越好的时候,由于人们对信息的广泛使用,会出现泄露信息的一些现象。    人们在使用互联网的过程中,自己的照片或者是银行账号等,都有可能在不经意间泄露出去。那么我们应该如何改变这一现象的发生呢?这个时候我们就可以借助私密代理ip了。    那是很多人肯定都了解到了,HTTP代理IP服务都非常贵,只有一些大公司或是大企业才能负担得起费用,因此很多大众都对于这个平台望而却步。或许这也是万变云私密代理ip上市不久就受到了很多人欢迎的原因,这个平台按照使用的次数来收费,为大众节省了不少费用的同时才能很好地保护大家的隐私。... [阅读全文]

推荐阅读

  1. 12

    2020-08

    用代理IP处理爬虫被封禁

    时代的发展离不开数据,很多收集统计数据都要在互联网抓取。数据信息收集越来越重要,通过数据才能对现在受众的喜好有针对性,根据需求提供供应,才会有市场,拓展市场。很多网络工作

  2. 29

    2021-03

    为什么使用了代理IP不能上网了?

    在使用完代理服务器之后,有的用户可能会遇到这样的问题:明明网络正常,为什么我的浏览器不能打开网页了?今天万变HTTP代理就给大家说下具体解决方法。这里我们以IE浏览器为例:

  3. 23

    2020-03

    大规模进行爬虫与代理IP的关系

    python爬虫是一个比较容易上手的语言,稍微有点基础,花5分钟看一篇相关入门文章,说不定就能爬取单个网页上的数据。但对于大规模爬取数据就是另外一回事,往往会衍生出许多这样那样的

  4. 19

    2020-10

    怎么便捷秒变换电脑ip?

    IP是我们每个用户上网需要使用的到的,好比我们使用的身份证通行证,如果没有这张通行证可能哪里都去不了。很多用户为了安全期间不想使用自己的IP,怕暴露自己的浏览轨迹,招来黑客入

  5. 23

    2021-02

    浅析独享ip池的日流量

    近来有许多朋友对独享IP池很感兴趣,但又不太了解独享IP池,许多朋友在购买后不会使用,或在使用后觉得不适合自己的业务场景。本人认为很有必要再向大家介绍一下独享IP池的知识,以便更

  6. 23

    2020-10

    代理ip对跳转爬虫者的帮助有哪些?

    大数据时代,上传信息简单,收集信息却是一个超级庞大的工程。好消息是,人类是创造性很强的动物,遇到麻烦时,会想方设法去解决。又是面对互联网庞大的信息库,为了更好的提高工作效

因为专业! 所以简单! 产品至上,价格实惠 是我们服务追求的宗旨

免费试用