网普技术论坛 网普科技  
» 游客:   网普主页 | 注册 | 登录 | 帮助
 

作者:
标题: ICAP协议简介[ZT] 上一主题 | 下一主题
网普科技
网普管理员

网普科技人民公仆


积分 3080
发贴 2863
注册 2004-6-26
来自 网普科技
状态 离线
#1  ICAP协议简介[ZT]

ICAP是Internet Content Adaptation Protocol的缩写.它在本质上是在HTTP message上执行RPC远程过程调用的一种轻量级的协议, 也就是说, 它让ICAP Client可以把HTTP Message传给ICAP Server, 然后ICAP Server可以对其进行某种变换或者其他处理(“匹配”).被变换的message可以是HTTP请求也可以是HTTP应答.

    ICAP是和HTTP协议在结构和用法上都相似的请求/应答式的协议.虽然和HTTP协议类似,但它并不是HTTP,也并不是以HTTP协议为底层协议在其上实现的应用层协议, 也就是说, ICAP的message不能够被HTTP代理所处理和转发. 实际上, 在ICAP协议刚被提出的时侯, 出于HTTP协议已被业界广泛采用和利用在HTTP上的已有的大量投资, 是曾经把它设计成HTTP上层的应用层协议的. 但是, 以HTTP为底层而实现的方案后来被证明是不可行的, 因为一些对于ICAP相当重要的特性无法在HTTP上面实现.例如, ICAP Client可以在传输一个消息体的中间暂停并且等待一个”100 Continue”消息, 而HTTP Client只能在消息头和消息体之间暂停等待, 另外, HTTP代理程序对Http message的一些变换是合法的和无害的, 而对于ICAP, 由于ICAP的”消息头中又内嵌有消息头”的封装机制和其他其他一些特性就将会引起问题.

    Origin Server
用户所要获得的资源所存储在或者所被生成的Server, 例如xxxmail的box server就是一种Origin Server.

    ICAP资源
    和HTTP资源相似, 但是其URI指定的是某个负责执行HTTP message的变换的ICAP服务.

ICAP server:
   和一个HTTP server类似,但可通过ICAP请求应用程序服务.

ICAP client:
   建立和ICAP servers的连接并发送请求给它的程序.ICAP client经常是(但不总是)为用户服务的代理程序.

ICAP的两种工作模式:
  
1)    请求修改模式

在”请求修改”(reqmod) 模式中, ICAP Client把HTTP request发送给ICAP Server, 然后ICAP SERVER可以做以下处理之一:  

a.    送回http request的一个修改后的版本, 然后ICAP Client把修改后的http request交给一个Origin Server去处理, 或者把修改后的request排队送到另一个ICAP Server做进一步的修改;

b.    送回一个http response. 在错误发生需要给用户有用的提示信息的时侯. 例如”你请求访问一个你没有权限访问的网页”.

c.    返回一个错误.
ICAP Client必须能够处理以上所有这3种ICAP SERVER的response. 但是ICAP Client的实现在处理错误的时侯仍可具有灵活性, 对于ICAP Server返回的错误, 可以直接把错误返回给用户, 或者再重新尝试匹配变换过程(把http request交给ICAP Server修改的过程).

在请求修改模式下的ICAP的典型的数据流程如下图所示:  
    origin-server
        | /|\  
        | |
     5 | | 4
        | |
       \|/ |              2
    ICAP-client    -------------->   ICAP-resource   
    (surrogate)    <--------------   on ICAP-server
        | /|\             3
        | |
     6 | | 1  
        | |
       \|/ |
       client
1. 用户client向支持ICAP的代理程序 (ICAP client)发送请求, 请求获得在一个Origin Server上的一个对象(网页,文件等等).

2. 代理程序向ICAP server发送请求.

3. ICAP server在收到的request 上面执行ICAP 资源的服务程序,然后送回很可能修改过的 request, 或者是对该request的response给ICAP client.

如果步骤3 送回了request的话:
   4. 代理程序把ICAP Server送回的request(很可能和用户client的原来的request不同了的)送给Origin Server.

   5. Origin Server对request作处理并把应答给代理程序.

6. 代理程序把应答 (从ICAP server回送的或者是Origin Server回送的) 回送给用户client.

2)    应答修改模式

在”应答修改”(respmod)模式中,ICAP client把HTTP response(Origin Server所生成的)发送给ICAP server, 然后ICAP server可以做以下之一:  
a.    回送response的一个修改后的版本.
b.    返回错误



天理路上甚宽,稍游心,胸中便觉广大宏朗;
人欲路上甚窄,才寄迹,眼前俱是荆棘泥涂。



网普科技,优质美国主机服务!
美国Linux主机,美国虚拟主机
支持PHP+MYSQL+cPanel+EMAIL
为用户负责,拒绝反动、赌博及色情内容! QQ:126818

发送QQ消息
2007-12-24 09:53 AM
查看资料  访问主页  发短消息  QQ   编辑帖子  引用回复 顶部
茱莉娅
THE BODY SHOP美容顾问

茱莉娅美体小铺


积分 3080
发贴 2863
注册 2009-5-21
来自 茱莉娅美体小铺
状态 离线
#1  赞助商信息The body shop

茱莉娅美体小铺
茱莉娅美体小铺淘宝店
茱莉娅美体小铺


茱莉娅美体小铺淘宝店
2007-12-24 09:53 AM
查看资料  访问主页  发短消息  QQ   编辑帖子  引用回复 顶部


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转:  




Powered by Discuz! 2.5 © 2001-2005 Comsenz Technology Ltd.
Processed in 0.005744 second(s), 7 queries, Gzip enabled
------------------------------------------------------------------------------
本论坛属网普科技交流与技术支持论坛!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
美国主机, 美国虚拟主机, cPanel+PHP+Mysql+Ftp+Email+Zend+GD2+国际域名支持
技术支持 QQ: 126818 EMail & MSN: support[AT]netpu.net
[ 联系我们 ] - [ 网普科技 ]