有時我們會在搜索引擎查找到一些要下載的軟件,當我們從搜索結果的超鏈接轉到下載頁面時,下載站點會顯示:您的連接並非來自本站……,之類云云。那目標站點是如何判斷我們的鏈接不是來自自己的站點的呢?其實,HTTP協議規定,當請求一個頁面時,必須將指向該頁面的URL包含在HTTP頭中,也就是說,你必須告訴服務器你是從那裡來的。當我們從搜索引擎的鏈接連過去時,瀏覽器會老老實實地把搜索引擎的結果頁面的URL發送到目標服務器。以下是IE瀏覽器發送的HTTP頭的完整信息:/ `' }$ ]3 d' z1 R
GET /test.htm HTTP/1.1
5 \' K6 g6 g1 `8 |) Y7 M! cAccept: */*
- T2 L/ F/ Z" Q$ \4 _. P; H3 _Referer: http://www.20cn.net/
: m0 j1 @' J8 [( F" p0 n) Q) yAccept-Language: zh-cn
2 K! z A2 P- \- w0 @: q; dAccept-Encoding: gzip, deflate. U# v3 C" Q# T6 z6 u9 a/ }; |) b
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)
$ M* m6 Y$ m; \; P- PHost: localhost( k; j: C( ~/ ~, q6 j' f' V% N. q
Connection: Keep-Alive
) ^: M/ i( T7 @2 z" I( }! J其中referer頭標注了我們的鏈接是從那裡來的。也許你會注意到,有時你用flashget之類的軟件下載東西,必須填寫「引用」,指的就是這個東西。
# o. @5 I* a" ~8 E0 ?6 d你可能會不得不在自己的網頁裡放一個別的網站的鏈接,而那個網站的頁面都有防盜鏈的處理,那該怎麼辦呢?有沒有辦法構造這個「引用」信息呢?其實,只需一個簡單的HTML標籤就可以搞定:<base href="http://target.com">,這裡的target.com就是那個防盜鏈的網站。+ \+ T ]& m! @6 s2 q6 k: d/ W; H
要注意的是,使用了這個標籤後,在你的頁面中所有相對路徑必須改成絕對路徑,而原先對target.com適用的絕對路徑要改成相對路徑,如:<img src="img/a.jpg">改成<img src="http://yoursite.com/page_path/img/a.jpg">,而<a href="http://target.com/file_path/test.cgi?id=123">改成<a href="file_path/test.cgi?id=123">
7 T l# ]* A) N) Y, [posted on 2004年08月14日 9:31 PM |
|