Atitit 代理解决方案proxy solu attilax总结

1. 为什么需要代理 1

1.1. Ajax跨域 1

1.2. Nginx反向代理 1

2. 分类 2

2.1. 普通vs隧道 2

2.2. 正向反向 2

2.3. CGLIB 动态代理 AspectJ静态代理 2

2.4. http代理 socket代理 2

3. 普通代理 2

3.1.1. 普通代理 3

4. 隧道代理 4

5. 反向代理 5

6. 代理的实现 5

6.1. nginx 5

6.2. 正向代理也可以使用apache实现 5

6.3. 浏览器代理 6

7. 参考 6

8. 参考资料 6

1. 为什么需要代理

1.1. Ajax跨域

1.2. Nginx反向代理

server_name  http://www.qq.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

proxy_pass http://www.qq.com;

}

2. 分类

2.1. 普通vs隧道

2.2. 正向反向

2.3. CGLIB 动态代理 AspectJ静态代理

2.4. http代理 socket代理

3. 普通代理

Web 代理是一种存在于网络中间的实体,提供各式各样的功能。现代网络系统中,Web 代理无处不在。我之前有关 HTTP 的博文中,多次提到了代理对 HTTP 请求及响应的影响。今天这篇文章,我打算谈谈 HTTP 代理本身的一些原理,以及如何用 Node.js 快速实现代理。

HTTP 代理存在两种形式,分别简单介绍如下:

第一种是 RFC 7230 - HTTP/1.1: Message Syntax and Routing(即修订后的 RFC 2616,HTTP/1.1 协议的第一部分)描述的普通代理。这种代理扮演的是「中间人」角色,对于连接到它的客户端来说,它是服务端;对于要连接的服务端来说,它是客户端。它就负责在两端之间来回传送 HTTP 报文。

第二种是 Tunneling TCP based protocols through Web proxy servers(通过 Web 代理服务器用隧道方式传输基于 TCP 的协议)描述的隧道代理。它通过 HTTP 协议正文部分(Body)完成通讯,以 HTTP 的方式实现任意基于 TCP 的应用层协议代理。这种代理使用 HTTP 的 CONNECT 方法建立连接,但 CONNECT 最开始并不是 RFC 2616 - HTTP/1.1 的一部分,直到 2014 年发布的 HTTP/1.1 修订版中,才增加了对 CONNECT 及隧道代理的描述,详见 RFC 7231 - HTTP/1.1: Semantics and Content。实际上这种代理早就被广泛实现。

本文描述的第一种代理,对应《HTTP 权威指南》一书中第六章「代理」;第二种代理,对应第八章「集成点:网关、隧道及中继」中的 8.5 小节「隧道」。

.作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

3.0.1. 普通代理

第一种 Web 代理原理特别简单:

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

当然代理也可以修改 HTTP 请求头部,通过 X-Forwarded-IP 这样的自定义头部告诉服务端真正的客户端 IP。但服务器无法验证这个自定义头部真的是由代理添加,还是客户端修改了请求头,所以从 HTTP 头部字段获取 IP 时,需要格外小心。

 

4. 隧道代理

 

可以看到,浏览器与代理进行 TCP 握手之后,发起了 CONNECT 请求,报文起始行如下:

CONNECT imququ.com:443 HTTP/1.1

对于 CONNECT 请求来说,只是用来让代理创建 TCP 连接,所以只需要提供服务器域名及端口即可,并不需要具体的资源路径。代理收到这样的请求后,需要与服务端建立 TCP 连接,并响应给浏览器这样一个 HTTP 报文:

HTTP/1.1 200 Connection Established

浏览器收到了这个响应报文,就可以认为到服务端的 TCP 连接已经打通,后续直接往这个 TCP 连接写协议数据即可。通过 Wireshark 的 Follow TCP Steam 功能,可以清楚地看到浏览器和代理之间的数据传递:

可以看到,浏览器建立到服务端 TCP 连接产生的 HTTP 往返,完全是明文,这也是为什么 CONNECT 请求只需要提供域名和端口:如果发送了完整 URL、Cookie 等信息,会被中间人一览无余,降低了 HTTPS 的安全性。HTTP 代理承载的 HTTPS 流量,应用数据要等到 TLS 握手成功之后通过 Application Data 协议传输,中间节点无法得知用于流量加密的 master-secret,无法解密数据。而 CONNECT 暴露的域名和端口,对于普通的 HTTPS 请求来说,中间人一样可以拿到(IP 和端口很容易拿到,请求的域名可以通过 DNS Query 或者 TLS Client Hello 中的 Server Name Indication 拿到),所以这种方式并没有增加不安全性

 

5. 反向代理

还有一种情况是访问 A 网站时,实际上访问的是代理,代理收到请求报文后,再向真正提供服务的服务器发起请求,并将响应转发给浏览器。这种情况一般被称之为反向代理,它可以用来隐藏服务器 IP 及端口。一般使用反向代理后,需要通过修改 DNS 让域名解析到代理服务器 IP,这时浏览器无法察觉到真正服务器的存在,当然也就不需要修改配置了。反向代理是 Web 系统最为常见的一种部署方式,例如本博客就是使用 Nginx 的 proxy_pass 功能将浏览器请求转发到背后的 Node.js 服务。

通常是由apache实现

6. 代理的实现

6.1. nginx

6.2. 正向代理也可以使用apache实现

 

  #正向代理设置

    ProxyRequests On

    ProxyVia On

 

    <Proxy *>

        Order deny,allow

        Deny from all

        Allow from 127.0.0.1

    </Proxy></VirtualHost>

现在看正向代理设置那一段

ProxyRequests On:开启Apache正向代理

ProxyVia On:控制位于代理服务器链中的代理请求的流向

  引用Apache2.2官方文档中对ProxyVia的解释如下:

 

如果设置为默认值Off ,将不会采取特殊的处理。如果一个请求或应答包含"Via:"头,将不进行任何修改而直接通过。

如果设置为On每个请求和应答都会对应当前主机得到一个"Via:"头。

如果设置为Full ,每个产生的"Via:"头中都会额外加入Apache服务器的版本,以"Via:"注释域出现。

如果设置为Block ,每个代理请求中的所有"Via:"头行都将被删除。且不会产生新的"Via:"头。

6.3. 浏览器代理

7. 参考

7.1. HTTP 代理原理及实现(一)   JerryQu 的小站.htm

7.2. Apache配置正向代理与反向代理 - Alexis_Liu - 博客园.htm

7.3.  

7.4. 参考资料

7.5. Apache配置正向代理与反向代理 - Alexis_Liu - 博客园.htm

7.6. [转载]socks2http原理分析 代理技巧交流 代理中国--ProxyCN_Com 提供每日全球最新最快代理服务器 - Powered by PHPWind.htm

7.7. atitit. 自动代理 proxy 的设计实现。

7.8. Atitit.实现反向代理(1)----url rewrite 配置java php.wps

7.9. 用Java开发代理服务器.htm

7.10. Java编写代理服务器(Burp拦截Demo)一 - Web安全 - 米安网.htm

7.11. Atitit.java http 代理  atiHttpProxy  大木马.docx

7.12. 多线程Http代理服务器 Java实现 - 独上高楼 - ITeye技术网站.htm

7.13. Atitit 通用服务端代理接口  转接口 attilax总结.docx

7.14. java实现http代理服务 - chenyu.hz - ITeye技术网站.htm

7.15. Atitit.HTTP 代理原理及实现 正向代理与反向代理attilax总结.docx

7.16. Atitit 动态调用webservice与客户端代理方式调用.docx

7.17. Atitit 代理CGLIB 动态代理 AspectJ静态代理区别.docx

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher  kok  虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王  纵火者

简称:: st Emir Attilax Akbar 圣 埃米尔 阿提拉克斯 阿克巴

全名::st Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 圣 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

头衔:

uke

Emir Uke部落首席大酋长,ati协会创始人

uke总部o2o负责人,全球网格化项目创始人,

圣阿提拉克斯国王

科技领域

UTSC uke技术标准化委员会委员长 uke 首席cto   软件部门总监 技术部副总监  研发部门总监主管  产品部副经理 项目部副经理   uke科技研究院院长 uke软件培训大师

Ati组织科研研究院创始人

文艺领域

,  ,, uke机车协会主任 uke纹身协会

uke交友协会会长  uke捕猎协会会长

Ati文艺协会会长  ati文学协会

行政领域

Gchsp总裁  gchsp常委  GsP创始人

媒体传播领域

uke出版社编辑总编  宣传布道总策划

Ati传媒总部

渔猎军事领域

uke保安部首席大队长

Uke 户外运动协会理事长  度假村首席大村长

Ati打猎协会

法学

法学研究会 制度研究会

管理领域

工商管理学 公共管理与社会服务

,uke制度检查委员会副会长

教育领域

uec学院校长, uecip图像处理机器视觉专业系主任   uke文档检索专业系主任

Uke图像处理与机器视觉学院首席院长

uke终身教育学校副校长

靓号研究院

经济领域

uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长

直达巴士西北区负责人   直达巴士长沙与西安分部部长

润昌通讯软件事业部总裁 执行长 分部负责人  执行委员会主席

Ati经济研究所

历史领域

历史事业部  ati历史研究院

社会科学领域

社科学院  ati文化部

自然科学领域

Uke研究院院长兼首席研究员 科学家

Ati自然科学研究院

宗教神学领域

uke宗教与文化融合事务部部长  大师master

uke制度与重大会议委员会委员长    ati宗教事务所

医学领域

Uke医院 与医学院方面的创始人

转载请注明来源:attilax的专栏  http://blog.csdn.net/attilax

http://www.cnblogs.com/attilax/

Microblog

http://weibo.com/u/5941179815   (common attilax)

https://weibo.com/p/1005055941179815  (attilax201707,bek weibo)

http://weibo.com/u/5487832265 (tech,for blog auto gene)

知乎空间

https://www.zhihu.com/people/ati-att/activities

Qq 1466519819  小号112237553

微信attilax  小号attilax201708

微博 attilax2016   小号attilax201707

--Atiend  v19

Atitit 代理解决方案proxy solu attilax总结 1. 为什么需要代理 1 1.1. Ajax跨域 1 1.2. Nginx反向代理 1 2. 分类 2 2.1. 普通vs隧道 2相关推荐

  1. 使用nginx反向代理发起跨域请求

    任务5:http://www.jnshu.com/task/2/45/detail//#1 页面文件放在github:https://github.com/Resalee/css_task/tree/ ...

  2. 关于Ajax跨域的解决方案

    关于Ajax跨域的解决方案和一些个人理解 Ajax跨域的原因 Ajax跨域的解决方案 Ajax跨域的原因 浏览器限制 跨域(协议.主机名.端口有一个不同就会产生跨域) xhr请求(XMLHttpReq ...

  3. Ajax:ajax跨域解决方案代理机制原理及实现

    目录: (1)ajax跨域解决方案之代理机制实现原理 (2)ajax跨域解决方案之代理机制的代码实现 (1)ajax跨域解决方案之代理机制实现原理 让ajax请求访问servlet,可以让ajax请求 ...

  4. nginx反向代理监听非80端口造成的端口丢失解决方案

    今天,配置nginx反向代理时遇到一个问题,当设置nginx监听80端口时转发请求没有问题.但若设置为监听其他端口,就一直跳转不正常:如,访问欢迎页面时应该是重定向到登录页面,在这个重定向的过程中端口 ...

  5. uni-app——一种通过Nginx反向代理处理302重定向请求解决网络请求中无法获取Cookie的解决方案

    问题描述 小程序中不会自动保存和发送Cookie 使用插件(https://uniapp.dcloud.io/api/request/request)方法不能解决302重定向情况下获取Cookie 小 ...

  6. 跨域问题,解决方案-Nginx反向代理

    跨域问题,解决方案-Nginx反向代理 参考文章: (1)跨域问题,解决方案-Nginx反向代理 (2)https://www.cnblogs.com/hulianwangjiagoushi/p/11 ...

  7. 前端跨域,nginx反向代理的解决方案

    前端跨域,nginx反向代理的解决方案 参考文章: (1)前端跨域,nginx反向代理的解决方案 (2)https://www.cnblogs.com/Yukiyi/p/7912223.html (3 ...

  8. nginx 反向代理时丢失端口的解决方案(转)

    nginx 反向代理时丢失端口的解决方案(转) 参考文章: (1)nginx 反向代理时丢失端口的解决方案(转) (2)https://www.cnblogs.com/shenyixin/p/1136 ...

  9. nginx请求转发被拒绝_解决nginx反向代理proxy不能转发header报头

    做了一个德国高防plesk卖虚拟主机,奈何地理位置太过于遥远,控制台使用上速度难以接受.用户站点可以使用cloudflare等等的加速手段,控制台能否也这么干呢?理论是完全可以的,那么时间上手看吧.安 ...

  10. 利用iframe实现ajax 跨域通信的解决方案

    在漫长的前端开发旅途上,无可避免的会接触到ajax,而且一般情况下都是用在同一域下的ajax请求:但是如果请求是发生在不同的域下,请求就无法执行,并且会抛出异常提示不允许跨域请求,目前我没有找到明确的 ...

最新文章

  1. AWS论剑Azure:安全组之争
  2. 哈希表的实现(取余法)
  3. 设计模式解析笔记之Adapter模式
  4. tomcat做成服务
  5. jzoj4229-学习神技【逆元,费马小定理】
  6. php 时间加法函数_php 时间加减
  7. selenium firefox驱动_Python3+selenium配置常见报错解决方案
  8. atomic_fetch_add
  9. Timus 1005. Stone pile
  10. python下载手机app视频教程_Python实例教学
  11. 动作识别0-02:mmaction2(SlowFast)-官方数据训练测试-ucf101
  12. 设计模式——工厂模式(包含:简单工厂模式、工厂方法模式、抽象工厂模式)
  13. Deeping Learning学习与感悟——《深度学习工程师》_1
  14. 微信公众平台Js API实现微信分享
  15. iOS 多语言本地化 完美解决方案【自动+手动】
  16. matlab 阿伦方差,GitHub - XinLiGH/GyroAllan: 陀螺仪随机误差的 Allan 方差分析
  17. B站banner图片随鼠标移动虚化效果摸索
  18. npm -i 与npm install -s与-d的区别
  19. grub引导项修复详解_grub2修复引导 · LINCHUAN的小站
  20. 解决Tabby终端使用zsh主题字体无法识别问题

热门文章

  1. sis 最新_传统SIS系统面临考验——“可持续的安全仪表系统”来袭
  2. Python 深拷贝和浅拷贝详解
  3. OPA:open policy agent简介
  4. html中hover的作用,hover在css中的用法
  5. Excel的LOOKUP函数用法和实例以及与VLOOKUP的异同
  6. 电脑通话有回音解决方案 使用电脑通话时有回音(可以听到对方电脑中自己说话的声音)电脑通话回音解决方案【以Thinkpad Win10系统为例】
  7. 简单的快速提取Fbank特征的方法
  8. 如何快速调整参考文献格式
  9. 【12306抢票神器】抢票啦—请收下这份2022元旦春节抢票攻略
  10. python输入个人所得税计算_python实例个税计算