網關(gateway): 資源和應用程序之間的粘合劑。應用程序能夠(經過HTTP或其它已定義的接口)請求網關來處理某條請求,網關能夠提供一條響應。網關能夠向數據庫發送查詢語句,或者生成動態的內容,像一扇門同樣,進去一個請求,出來一個響應。php
嚴格的來講,代理鏈接的是兩個或多個使用一樣協議的程序,而網關鏈接的是鏈接兩個或多個不一樣協議的程序,網關負責的是協議的轉換。數據庫
- Web網關在一側使用HTTP協議,在另外一側使用另外一種協議;能夠用一個斜槓來分隔客戶端和服務器端協議,並以此對網關進行描述;
- <客戶端協議> / <服務器端協議>
- 客戶端網關:(client – side gateway)經過其它協議與客戶端對話,經過HTTP與服務器通訊;
- 服務器端網關 (server – side gateway) 經過HTTP與客戶端對話,經過其它協議與服務器通訊;
通用網關接口(common gateway interface CGI): CGI是一個標準接口集,Web服務器能夠用它來裝載程序以響應。對特定URL的HTTP請求,並收集程序的輸出數據,將其放在HTTP響應中回送。api
Web隧道 容許用戶經過HTTP鏈接發送非HTTP流量,這樣就能夠在HTTP附帶其它協議數據,也就是說,能夠在HTTP鏈接中嵌入非HTTP流量,非HTTP流量就能夠穿過只容許Web流量經過的防火牆了。服務器
Web機器人 是可以在無需人類干預的狀況下自動進行一系列 Web事物處理的軟件程序
。不少機器人會從一個Web站點逛到另外一個Web站點,獲取內容,跟蹤超連接,並對它們找到的數據進行處理。若是一個Web站點有 robots.txt文件
,那麼在訪問這個Web站點上的任意URL以前,機器人都必須去獲取它並對其進行處理。由主機名和端口號定義的整個Web站點僅有一個 robots.txt資源
。若是站點是虛擬主機,每一個虛擬的docroot均可以有一個 robots.txt文件
。app
機器人會用HTTP的GET方法來獲取robots.txt資源,就像獲取Web服務器上全部其餘資源同樣,機器人應該在 From首部
和 User-Agent首部
中傳輸標識信息,以幫助站點管理員對機器人的訪問進行跟蹤。ide
# 例子: GET / robots.txt HTTP / 1.0 HOST:www.example.com User-Agent:Slurp / 2.0 Date:Web Oct 3 23:30:EST
機器人會根據對robots.txt檢索結果採起不一樣方案。post
- 2xx:機器人對內容進行解析,並使用排斥規則從那個站點上獲取內容;
- 404:(沒找到文件)機器人認爲服務器沒有任何排斥規則,對次站點的訪問不受robots.txt限制;
- 401 / 403:機器人認爲對此站點訪問徹底受限;
- 503:機器人會推遲對此站點的訪問,直到能夠獲取資源爲止;
- 3xx:若是服務器相應說明是重定向,機器人就應該跟着重定向,直到找到資源爲止;
文件中有三種類型行:空行、註釋行和規則行。spa
- User - Agent:Slurp 容許機器人Slurp訪問;
- User - Agent:Webcrawler 容許機器人Webcrawler訪問;
- DisAllow: / private 訪問除了private子目錄;
- DisAllow: 阻止其它機器人訪問該站點任何內容
# # 例子:robots.txt for Discuz! X3 # User-agent: * Disallow: /api/ Disallow: /data/ Disallow: /source/ Disallow: /install/ Disallow: /template/ Disallow: /config/ Disallow: /uc_client/ Disallow: /uc_server/ Disallow: /static/ Disallow: /admin.php Disallow: /search.php Disallow: /member.php Disallow: /api.php Disallow: /misc.php Disallow: /connect.php Disallow: /forum.php?mod=redirect* Disallow: /forum.php?mod=post* Disallow: /home.php?mod=spacecp* Disallow: /userapp.php?mod=app&* Disallow: /*?mod=misc* Disallow: /*?mod=attachment* Disallow: /*mobile=yes*
NOINDEX:告訴機器人不要對頁面的內容進行處理;代理
<META NAME = "ROBOTS" CONTENT = "NOINDEX">
NOFOLLOW:告訴機器人不要爬行這個頁面的任務外鏈;code
<META NAME = "ROBOTS" COMEN = "NOFOLLOW">