【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上的连接请求,然后将请求转发给内 ...
随机推荐
- Android 软键盘的监听(监听高度,是否显示)
Android官方本身没有提供一共好的方法来对软键盘进行监听,但我们实际应用时.非常多地方都须要针对软键盘来对UI进行一些优化. 下面是整理出来的一个不错的方法.大家能够使用. public clas ...
- react-native + teaset 实现 Tabbar
1.代码 src/pages/MainPage/index.js /** * 主页面 */ import React, {Component} from 'react'; import { BackH ...
- 单例模式 - GCD 、兼容ARC和MRC
单例模式 - GCD .兼容ARC和MRC 单例模式的作用: 1,能够保证在程序执行过程.一个类仅仅有一个实例,并且该实例易于供外界訪问 2,从而方便地控制了实例个数,并节约系统资源 单例模式的使用场 ...
- 【Lucene】Apache Lucene全文检索引擎架构之中文分词和高亮显示4
前面总结的都是使用Lucene的标准分词器,这是针对英文的,但是中文的话就不顶用了,因为中文的语汇与英文是不同的,所以一般我们开发的时候,有中文的话肯定要使用中文分词了,这一篇博文主要介绍一下如何使用 ...
- H265 Rtp封包
H265 Rtp封包可以参考Ffmpeg,具体实现在文件rtpenc_h264_hevc.c(4.0.1版本),核心的方法是nal_send 这个方法有些绕,下面帖子具体的代码及注释. static ...
- DevOpsDays 活动咨询网站
站点:http://www.41huiyi.com/event-1452630998.html
- 转Postman请求Https接口
转自:https://blog.csdn.net/ONS_cukuyo/article/details/79172242 单向认证 像平常一样访问就行,无需做任何处理,只需要把http://变成htt ...
- 面向对象-Object类
一.Object类中的equals()方法 equals(Object obj) :指示其它某个对象是否与此对象"相等". 返回值类型是boolean Oblect类中的equal ...
- Sphinx初探之安装
在Centos or redhat 安装Sphinx .首先安装依赖包 $ yum install postgresql-libs unixODBC .安装软件 $ rpm -Uhv sphinx-- ...
- 使用mescroll实现上拉加载与下拉刷新
现在上拉加载与下拉刷新几乎已经是移动端必备功能之一了,自己实现一个太麻烦,但是好用的插件又非常少.之前看到网上很多人都在用iScroll,于是也尝试用它做了几个DEMO,但或多或少都有一些问题,比如这 ...