ICAP-RFC3507

Posted on  May 22, 2017  in  資訊技術探索  by  Amo Chen  ‐ 2 min read

ICAP(Internet Content Adaptation Protocol) 是一種被代理伺服器(Proxy)所使用的協定,目前最常見的用途為做為代理伺服器的病毒掃描或是內容過濾,SquidClamav 就是透過實作 ICAP,來達成 Proxy 病毒掃描功能的最好例子。

ICAP 詳細的內容被定義在 RFC 3507 之中,其中最為重要的是 ICAP 具有 2 種模式- Request Modification(Reqmod)Response Modification(Respmod)

以下以代理伺服器及網頁伺服器做為例子,解說 ICAP 運作的方式。

2 種模式的運作方式,分別陳述如下。

Request Modification

  1. 使用者對代理伺服器送出要求,希望取得網頁伺服器上的網頁以進行瀏覽
  2. 代理伺服器將使用者送出的要求轉送至 ICAP 伺服器。
  3. ICAP 在收到要求之後,會對使用者所送出的要求進行檢查,若檢查不通過,ICAP 伺服器可以更改使用者所送出來的要求,再回送給代理伺服器;或是檢查通過時,則不更改使用者所送出的要求,直接原封不動的回傳至代理伺服器。 例如假設使用者送出的要求為色情網站的網址,而 ICAP 伺服器檢查之後,發現是色情網站的網址,便將使用者所要求的網址更改為 www.google.com 。 
  4. 代理伺服器執行 ICAP 伺服器所回傳的要求。 延續上一步的話,就變成為使用者至 www.google.com 取得網頁。
  5. www.google.com 則將網頁回傳至代理伺服器。
  6. 代理伺服器將 www.google.com 網頁回傳給使用者。(使用者怒而發現無法瀏覽色情網站)

簡而言之,對使用者所送出的 Request header 做檢查或更改,就是 Request Modification!

Response Modification

與 Request Modification 相似,但是代理伺服器會先執行使用者所送出的要求,例如第 2 步會直接至色情網站取得網頁之後,再將網頁內容交給 ICAP 伺服器檢查(第4步),結果 ICAP 伺服器發現網頁裡面含有色情圖片連結,便將所有的色情圖片連結更改為包子圖連結之後,再回傳給代理伺服器(第5步),代理伺服器則將 ICAP 伺服器更改過的網頁傳給使用者(第6步,使用者可能又怒而發現看不到圖片…)

簡而言之,對 Response content 做檢查或更改,就是 Response Modification!

參考資料:

http://www.rfc-editor.org/rfc/rfc3507.txt http://wiki.squid-cache.org/Features/ICAP http://squidclamav.darold.net/install.html

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

追蹤新知

看完這篇文章了嗎?還意猶未盡的話,追蹤粉絲專頁吧!

我們每天至少分享 1 篇文章/新聞或者實用的軟體/工具,讓你輕鬆增廣見聞提升專業能力!如果你喜歡我們的文章,或是想了解更多特定主題的教學,歡迎到我們的粉絲專頁按讚、留言讓我們知道。你的鼓勵,是我們的原力!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!