有時我們會在搜索引擎查找到一些要下載的軟件,當我們從搜索結果的超鏈接轉到下載頁面時,下載站點會顯示:您的連接並非來自本站……,之類云云。那目標站點是如何判斷我們的鏈接不是來自自己的站點的呢?其實,HTTP協議規定,當請求一個頁面時,必須將指向該頁面的URL包含在HTTP頭中,也就是說,你必須告訴服務器你是從那裡來的。當我們從搜索引擎的鏈接連過去時,瀏覽器會老老實實地把搜索引擎的結果頁面的URL發送到目標服務器。以下是IE瀏覽器發送的HTTP頭的完整信息:
& @3 M# P) h! dGET /test.htm HTTP/1.1
: W) h |1 X* Y( G6 m! j2 ]: M% eAccept: */*
; s9 x" W( h5 P4 lReferer: http://www.20cn.net/
5 `7 i4 _' R' H; Q6 oAccept-Language: zh-cn2 O, X- H6 \$ p6 E0 S" U: Q
Accept-Encoding: gzip, deflate
- B& W" [5 g& F1 v- ?- o" [1 `( x1 zUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)
6 [ ?5 J4 Q7 P7 A8 M2 m% z% E% xHost: localhost
7 ?5 [0 |* ]4 K T, ~Connection: Keep-Alive! {# N% ^) i G) C0 G$ O1 X
其中referer頭標注了我們的鏈接是從那裡來的。也許你會注意到,有時你用flashget之類的軟件下載東西,必須填寫「引用」,指的就是這個東西。
4 }! _$ r3 r" A6 V你可能會不得不在自己的網頁裡放一個別的網站的鏈接,而那個網站的頁面都有防盜鏈的處理,那該怎麼辦呢?有沒有辦法構造這個「引用」信息呢?其實,只需一個簡單的HTML標籤就可以搞定:<base href="http://target.com">,這裡的target.com就是那個防盜鏈的網站。- C. I1 d" N7 r$ J& J
要注意的是,使用了這個標籤後,在你的頁面中所有相對路徑必須改成絕對路徑,而原先對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">
5 L5 x' X" s' K9 c7 U' O1 Y" j; eposted on 2004年08月14日 9:31 PM |
|