之前写过一个篇 【HTTP协议详解】 ,这次介绍代理服务器, 代理服务器是HTTP协议中一个重要的组件, 发挥着重要的作用。 本文介绍一些HTTP代理服务器的概念和工作原理

阅读目录

  1. 什么是代理服务器
  2. Fiddler就是个典型的代理
  3. 代理作用一:翻墙
  4. 代理作用二:匿名访问
  5. 代理作用三:通过代理上网
  6. 代理作用四:通过代理缓存,加快上网速度
  7. 代理作用五:儿童过滤器
  8. IE代理设置:手动设置代理
  9. IE代理设置:使用自动配置脚本(PAC)
  10. IE代理设置:自动探测设置(WPAD)
  11. 代理认证,407状态码
  12. 使用代理服务器的安全问题
  13. 如何搭建代理服务器

什么是代理服务器

Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。

HTTP的代理服务器即是Web服务器又是Web客户端。

Fiddler就是个典型的代理

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler退出的时候它会自动注销代理,这样就不会影响别的程序。

代理的作用一, 翻墙

很多人都喜欢用Facebook, 看youTube。但是我们在天朝,天朝有The Great of Wall(长城防火墙),屏蔽了这些好网站。  怎么办?   通过代理来跳墙,就可以访问了。

自己去寻找代理服务器很麻烦, 一般都是用翻墙软件来自动发现代理服务器的。

代理的作用二, 匿名访问

经常听新闻,说”某某某“在网络上发布帖子,被跨省追缉了。   假如他使用匿名的代理服务器,就不容易暴露自己的身份了。

http代理服务器的匿名性是指: HTTP代理服务器通过删除HTTP报文中的身份特性(比如客户端的IP地址, 或cookie,或URI的会话ID), 从而对远端服务器隐藏原始用户的IP地址以及其他细节。 同时HTTP代理服务器上也不会记录原始用户访问记录的log(否则也会被查到)。

代理的作用三, 通过代理上网

比如局域网不能上网, 只能通过局域网内的一台代理服务器上网。

代理的作用四, 通过代理缓存,加快上网速度

大部分代理服务器都具有缓存的功能,就好像一个大的cache, 它有很大的存储空间,它不断将新取得数据存储到它本地的存储器上, 如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传给用户的浏览器,这样就能显著提高浏览速度。

代理的作用五:儿童过滤器

很多教育机构, 会利用过滤器代理来阻止学生访问成人内容。

IE代理设置:手动设置代理

IE浏览器可以手动设置代理, 很简单,指定一个IP地址和端口就可以了。 如下图。

工具 -> Internet选项 -> 连接 -> 局域网设置 (快捷键)

假如代理服务器的IP地址改变了,或者端口号改变了。 难道要几百个客户端的浏览器去修改浏览器设置? Impossable  这太难维护了。  下面还有一种更高级点的方法。

IE代理设置:使用自动配置脚本(PAC)

手动配置代理很简单,但是不灵活。 只能指定一个代理服务器,而且不支持故障转移。

在大公司里一般都使用PAC文件来配置。只需要指定PAC文件的URL就可以了, 如图:

PAC(Proxy Auto Config)文件是一个小型的JavaScript程序的文本文件,后缀为.dat。

当浏览器访问网络的时候,会根据PAC文件中的JavaScript函数来选择恰当的代理服务器。

sample_pac.dat文件的内容

function FindProxyForURL(url, host) {if (url.substring(0, 5) == "http:") {// 应该使用指定的代理return "PROXY proxy:80";}else if (url.substring(0, 4) == "ftp:") {return "PROXY fproxy:80";}else if (url.substring(0, 7) == "gopher:") {return "PROXY gproxy";}else if (url.substring(0, 6) == "https:") {return "PROXY secproxy:8080";}else {// 直连,不经过任何代理return "DIRECT";}
}

IE代理设置:自动探测设置(WPAD)

浏览器只要选中“自动检测设置”, 就可以使用WPAD协议, WPAD会自动找到PAC文件的URL。  WPAD会使用一系列的资源发现技术(DHCP,DNS等)去寻找PAC文件。

代理认证,和407状态码

代理服务器也可以需要权限认证, HTTP定义了一种名为代理认证(Proxy authentication)的机制。 这种机制可以阻止对内容的请求。

当浏览器访问需要认证的代理时, 代理服务器会返回407 Authorization Required,告诉浏览器输入用户名和密码。

代理认证跟HTTP基本认证是一样的机制, 如需了解代理认证的机制,请看[HTTP协议基本认证]

使用代理服务器的安全问题

代理服务器和抓包工具(比如Fiddler)都能看到http request中的数据。 如果我们发送的request中有敏感数据,比如用户名,密码,信用卡号码。这些信息都会被代理服务器看到。所以非常危险。 所以我们一般都是用HTTPS来加密Http request.  这样代理服务器就看不到里面的数据了。

如何搭建代理服务器

可以使用CCproxy, 和Squid 来搭建代理服务器。

转载自:小坦克博客

HTTP协议——代理相关推荐

  1. 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值...

    实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...

  2. OC加强(三)之protocol(协议)/代理

    1.protocol概念以及基本使用 1.protocol的使用注意 OC中的协议(protocol)使用注意: 1)Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现 ...

  3. 使用Nginx为TCP/WebSocket协议做反向代理和几个易踩的坑

    通常,我们使用Nginx为后端WEB服务做反向代理或负载均衡,但如果我们的后端服务,并不是HTTP/HTTPS协议,而是TCP协议或WebSocket协议呢 最近遇到一个需求,我们的HTTPS以及MQ ...

  4. ajp协议: httpd 代理 tomcat集群

    文章目录 1, ajp proxy 2, mod_jk: httpd 模块 a, 下载mod_jk源码包,编译httpd插件 b, 配置mod_jk 1, ajp proxy ajp代理使用场景:后台 ...

  5. Objective-C:在类中设置不同协议

    在下面的代码中,设置了两种不同的协议规则:一种是老师对学生设置的协议:即老师发出命令后,学生站起来.回答问题.坐下; 另一种是我对学生设置的协议:即学生按照我的协议中的初始化函数去初始化一个整数. / ...

  6. iOS:网络编程解析协议一:HTTP超文本传输协议

    HTTP传输数据有四种方式:Get方式.Post方式.同步请求方式.异步请求方式.具体的介绍,前面已经有过系统的讲解,这次主要进行具体的举. 说明:同步和异步请求方式在创建链接对象和创建请求对象时,用 ...

  7. MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用

    原版地址:http://blog.csdn.net/xukai871105/article/details/39252653 0 前言 MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物 ...

  8. 物联网协议之CoAP协议开发学习笔记之术语解释

    哪有什么天生如此,只是我们天天坚持. -Zhiyuan 此文章主要总结CoAP协议的术语解释: 只在网上找到了[RFC2616] 的解释,但是这些都是通用的 本文档要求读者熟悉[RFC2616]中讨论 ...

  9. iOS之界面传值(通知,属性,协议,NSUserDefaults,KVC)

    通知传值 通知是在跳转控制器之间常用的传值代理方式.NSNotificationCenter提供了一种解耦的方式,就是任何对象都可以发送通知到中心,同时任何对象可以监听中心的通知. 发送通知(传值页面 ...

最新文章

  1. MySQL-一条sql语句的执行顺序
  2. Acwing第 7 场周赛【未完结】
  3. ActiveMQ目录结构
  4. Squid服务器配置
  5. MTK:DrvGen驱动的使用
  6. [摘抄] 资深软件项目经理/产品经理“扯皮技巧”汇总(新手入坑必读,不定期更新)...
  7. VC++的Unicode编程(经典之作,交流传薪)
  8. Fiori 实现在网页端调用摄像头扫描二维码进行识别
  9. 谷歌地球大陆版如何下载和使用,查看谷歌历史影像3D建筑街景等
  10. 怎么把ppt弄成链接的形式_ppt制作视频教程(就是把office powerpoint幻灯片转换成视频格式)...
  11. 【LaTeX入门】软件安装
  12. Ubuntu - Firefox 视频无法播放问题解决方法
  13. 化学式中间的点怎么打?
  14. C++班车管理系统课程设计
  15. php语言讲座,学习PHP语言的十大诀窍
  16. 对AutoResetEvent和ManualResetEvent的理解
  17. 如何安装java-jdk
  18. php数字运算符号,php运算符号
  19. 在表格中展示订单的倒计时定时器,用一个定时器显示多个倒计时
  20. 五大列级庄_详解五大名庄背后的1855分级

热门文章

  1. 交换机电源参数中AC、DC分别代表什么?
  2. Active Learning 主动学习
  3. Jenkins 构建定时任务后不触发构建
  4. bash 获取脚本存放路径_如何获取Bash脚本自己的路径
  5. Excel中,公式正确显示,却有时候识别不了公式,计算不出结果
  6. 游戏建模中3DMax的那些神技巧
  7. 身份验证协议和java安全框架
  8. 认清电脑配件保修规定 不吃哑巴亏!
  9. 模式识别、计算机视觉、机器学习领域的顶级期刊和会议(整理)
  10. 王光耀20176474