网普科技
网普管理员
网普科技人民公仆
积分 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消息 |
|