【HTTP】初识代理
Web代理(proxy)位于客户端和服务器端之间。HTTP的代理服务器既是Web服务器端又是Web客户端。
1. 代理和网关的对比
代理连接的是两个或者多个使用相同协议的应用程序。
网关连接的是两个或者多个使用不同协议的端点。网关扮演的是“协议转换器”的角色。
实际上,代理和网关的区别很模糊。由于浏览器和服务器端使用的http版本的不同,代理也经常做一些协议转换的工作。
2. 为什么使用代理
改善安全性,提高性能,节省费用。代理服务器可以看到并接触到所有流过的HTTP的流量,所以代理可以监视流量并对其进行修改,以实现很多增值的WEB业务。一些应用场景:
儿童过滤器:过滤不良页面;(出口代理)
文档访问控制:根据用户授予不同的权限;
安全防火墙:控制安全
Web缓存(访问入口代理)
反向代理:他们可以发起与其他服务器的通信,以便按需定位所请求的内容。
内容路由器
转码器 :在将内容发给客户端之前,可以修改内容的主体格式。
匿名者:主动从HTTP报文中删除身份信息 (例如:客户端的IP地址),从而提高私密性和匿名性。
3. 客户端的代理设置
3.1 手工配置
3.2 PAC文件,proxy auto-configuration,代理自动配置 。PAC文件是一些小型的JS程序,可以在运行过程中计算代理的配置。因此,是一种个动态的代理配置解决方案。
3.3 客户端代理配置(WPAD, web proxy auto discovering protocol)。使用逐级上升策略自动为浏览器找到合适的PAC文件。实现WPAD的客户需要
用WPAD找到PAC的URI;
从指定的URI 获取PAC文件;
执行PAC文件来判定代理服务器;
为请求使用代理服务器。
WPAD会使用一系列资源发现技术判定适当的PAC文件。 并不是所有的组织都能够使用所有的发现技术,所以WPAD使用了很多发现技术。WPAD会一个接一个的对每种技术进行尝试,知道成功为止。
当前的WPAD协议规范按顺序定义了下列技术:
动态主机配置协议(Dynamic Host Configuration Protocol, DHCP);
服务定位协议(Service Location Protocol,SLP);
DNS知名主机名;
DNS SRV记录;
4. 代理中一些棘手的问题
显示的代理要求在请求报文中使用完整的URI来解决这个问题。
虚拟主机Web服务器要求使用Host首部来承载主机和端口号信息。
【HTTP】初识代理的更多相关文章
- 初识代理——Proxy
无处不在的模式——Proxy 最近在看<设计模式之禅>,看到代理模式这一章的时候,发现自己在写spring项目的时候其实很多时候都用到了代理,无论是依赖注入.AOP还是其他,可以说是无处不 ...
- 初识AOP与动态代理
AOP AOP是指在jvm运行时, 动态将代码切入到指定位置. OOP是一个维度上写代码, AOP是把他切开来, 变成立体的. 这样的好处是: 业务逻辑跟辅助逻辑分离, 例如日志打印, 性能监控, 安 ...
- 初识nginx反向代理和缓存机制
实现的需求图: 环境: nginx缓存和反向代理服务器:192.168.0.224 实际存储数据机器:192.168.0.37 一.实现反向代理 1.安装nginx,两台服务器都需要安装 1)安装 ...
- 初识Swift中的值和引用,循坏引用、代理的注意点
1.0 在Swift中分有值类型和引用类型 Int .String . 结构体和枚举都属于值类型, 将值类型传递给方法是,将在内存中创建其副本,并传递这个副本:这样我们就可以随心所欲修改它,而不用担心 ...
- 死磕Spring之AOP篇 - 初识JDK、CGLIB两种动态代理
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1 ...
- 初识Spring框架
一.Ioc 1)概念:Ioc(Inversion Of Control)控制反转,也被称为依赖注入DI(Dependency Injection),是面向对象编程的一种思想. 2)作用:用来减低程序代 ...
- 初识 MySQL 5.6 新功能、参数
摘要: 继上一篇的文章 初识 MySQL 5.5 新功能.参数 之后,现在MySQL5.6 针对 MySQL5.5 各个方面又提升了很多,特别在性能和一些新参数上面,现在看看大致提升了哪些方面(后续不 ...
- IOS之UI -- UITableView -- 1 -- 相关初识
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- [转]反向代理过程与Nginx特点详解
原文链接:<Nginx搭建反向代理服务器过程详解> 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内 ...
随机推荐
- 关于ionic打包出错:ionic Unable to start the daemon process
一直试都没问题的ionic build android 今天竟然冒出了这个错误 Error:Unable to start the daemon process. This problem migh ...
- perftools查看堆外内存并解决hbase内存溢出
最近线上运行的hbase发现分配了16g内存,但是实际使用了22g,堆外内存达到6g.感觉非常诡异.堆外内存用一般的工具很难查看,可以通过google-perftools来跟踪: http://cod ...
- 搭建SSH框架整合Struts2和Spring时,使用@Autowired注解无法自动注入
© 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 搭建SSH框架,在进行Struts2和Spring整合时,使用Spring的@Autowired自动注入失败,运行报错java.lan ...
- POJ1195 Mobile phones 【二维线段树】
Mobile phones Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 14291 Accepted: 6644 De ...
- Android IntentService全然解析 当Service遇到Handler
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47143563: 本文出自:[张鸿洋的博客] 一 概述 大家都清楚.在Andro ...
- .net之Ajax获取接口数据并实现循环播放
<script type="text/javascript"> var xhr; ; var res; window.onload = function () { xh ...
- oracle中sql执行性能关注点
繁琐复杂的执行计划.可能迷了开发人员的眼.导致一条性感又傻X的SQL 在服务器上跑得特欢乐 有介于此.重点抓住几个部分.至于其他的嘛.当然是.非礼勿视咯.. ㈠ 返回行的数量 ...
- linux模块导出符号 EXPORT_SYMBOL_GPL&EXPORT_SYMBOL(转)
转自:http://blog.csdn.net/angle_birds/article/details/7396748 一个模块mod1中定义一个函数func1:在另外一个模块mod2中定义一个函数f ...
- xfs 文件系统损坏修复 fscheck
- 什么是scale up和scale out
Scale Out(也就是Scale horizontally)横向扩展,向外扩展Scale Up(也就是Scale vertically)纵向扩展,向上扩展无论是Scale Out,Scale Up ...