【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首部来承载主机和端口号信息。

时间: 2024-12-12 00:22:52

【HTTP】初识代理的相关文章

初识代理——Proxy

无处不在的模式——Proxy 最近在看<设计模式之禅>,看到代理模式这一章的时候,发现自己在写spring项目的时候其实很多时候都用到了代理,无论是依赖注入.AOP还是其他,可以说是无处不在. 于是自己便自己摸索写了一些小例子,当然也参考了网上其他博主的博客,毕竟小白一枚hhhhhh 进入正题: 图1-1:代理Proxy 代理模式现在主流的有两大类:1.JDK代理    2.CGLB代理 (JDK静态代理就不说了,网上很多都有,主要我觉得现在面向企业项目,静态代理局限性有点大,对于我而言可能就

设计模式之代理模式(Proxy)

1.初识代理模式 生活中大家一定遇到这样的情况了:比如说我要买一条毛巾,不妨就是洁丽雅的吧,那一般人的话我应该不是去洁丽雅的工厂里面直接去买吧,而是我们在洁丽雅专卖店或者什么超市啊,这些地方购买,这些地方实际上就是洁丽雅毛巾的代理.这其实和我们OO中的代理模式是很相似的. 一个it人士,上网应该是经常的事了吧,那么总会有这样的情况,打开一个网页,文字先出现,而那些比较大的资源,例如图片要等等才会显示出来,这是为什么呢??实际上这其中采用的就是代理模式. 2.代理模式的一个简单的例子 就说上面的毛

设计模式之代理模式(Proxy)&lt;收藏一下,参考别人的&gt;

1.初识代理模式 生活中大家一定遇到这样的情况了:比如说我要买一条毛巾,不妨就是洁丽雅的吧,那一般人的话我应该不是去洁丽雅的工厂里面直接去买吧,而是我们 在洁丽雅专卖店或者什么超市啊,这些地方购买,这些地方实际上就是洁丽雅毛巾的代理.这其实和我们OO中的代理模式是很相似的. 一个it人士,上网应该是经常的事了吧,那么总会有这样的情况,打开一个网页,文字先出现,而那些比较大的资源,例如图片要等等才会显示出来,这是为什么呢??实际上这其中采用的就是代理模式. 2.代理模式的一个简单的例子 就说上面的

初识Swift中的值和引用,循坏引用、代理的注意点

1.0 在Swift中分有值类型和引用类型 Int .String . 结构体和枚举都属于值类型, 将值类型传递给方法是,将在内存中创建其副本,并传递这个副本:这样我们就可以随心所欲修改它,而不用担心这会修改传入的原始值. 传递引用类型时不会复制它,而将其地址提供给可能使用他们的函数或方法.闭包以及从类实例化得到的对象都属于引用类型.将闭包或者对象传递给方法时,不会创建其副本,而是传递引用(内存地址).由于传递引用类型时不会创建其副本,因此需要特别小心,确保在正确的时间妥善地释放它们,过早的释放

初识nginx反向代理和缓存机制(简单实现)

实现的需求图: 环境: nginx缓存和反向代理服务器:192.168.0.224 实际存储数据机器:192.168.0.37 一.实现反向代理 1.安装nginx,两台服务器都需要安装 1)安装依赖包 yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel 2)下载nginx wget http://nginx.

初识nginx反向代理和缓存机制

实现的需求图: 环境: nginx缓存和反向代理服务器:192.168.0.224 实际存储数据机器:192.168.0.37 一.实现反向代理 1.安装nginx,两台服务器都需要安装 1)安装依赖包 yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel pcre-devel openssl openssl-d

初识keepalived(三)——keepalived与nginx代理实现高可用

背景介绍 nginx除了可以作为web服务器外,同时也是一个反向代理软件,nginx不能完全取代apache,所以很多场景下nginx作为apache的反向代理服务器.nginx运行在用户空间,代替用户向服务器发起请求,请求返回时再经由nginx服务器返回给用户.不同于LVS的NAT模型,web服务器的网关不用必须指向nginx服务器,只要2者之间可以通信就可以,由于nginx作为代理服务器,所以支持端口转换. 网络拓扑 实验拓扑结构如下: 实验系统采用CentOS6.8,nginx采用1.12

动态代理初识

代理模式 * 概念: 1. 真实对象:被代理的对象 2. 代理对象: 3. 代理模式:代理对象代理真实对象,达到增强真实对象功能的目的 * 实现方式: 1. 静态代理:有一个类文件描述代理模式 2. 动态代理:在内存中形成代理类 * 实现步骤: 1. 代理对象和真实对象实现相同的接口 2. 代理对象 = Proxy.newProxyInstance(); 3. 使用代理对象调用方法. 4. 增强方法 * 增强方式: 1. 增强参数列表 2. 增强返回值类型 3. 增强方法体执行逻辑 public

初识React

原文地址:北云软件-初识React 专注于UI 在MVC分层设计模式中,react常被拿来实现视图层(V).React不依赖于技术栈的其他部分,因此可以方便的在现有项目中尝试用它来实现一个小特性. 虚拟DOM React从DOM中抽象出来,给出一种更简洁的编程模型,且性能表现更好.能够通过NodeJS实现服务端渲染,通过React Native开发原生app. 数据流React实现单向.响应式数据流,减少boilerplate且比传统数据绑定更容易理解. 简洁的组件React的组件都实现了一个r