顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2013-09-16 11:27:13
看板 
作者 danny8376 (釣到一隻猴子@_@)
標題 Re: [問題] 判斷HTTP_REFERER的來源形式
時間 Mon Sep 16 04:14:54 2013


※ 引述《LaPass (LaPass)》之銘言:
(恕刪)
: 請問有沒有辦法區分這次點我的網站的連結是哪一種形式?

這部分剛剛測試了一下
應該對一般常見的瀏覽器都能拿來判斷
先說一下這方法來自於
http://stackoverflow.com/questions/10505678/

下面是拿手邊所有能測的設備&瀏覽器測完的結果~~~
(依序是URI => ?img 代表網頁內的img tag   沒有query string的就是連結)
(第二行是User Agent   第三行是Accept Header)
http://pastebin.com/j7SVysGW

總體來說...
IE6-8仍然是特立獨行...


判斷兩者分別的方法主要在於一般瀏覽器對img還有hotlink會有不同的 Accept Header
對img大多瀏覽器都只有*/* 只有GC多了image/webp (Google推廣的格式XD)
所以判斷上只要符合下面條件應該就會是連結
反之就是其他的(img audio video ...) (不過embed不適用...)
IE6-8的部分如果要判斷是否為連結大概就下面幾個MIME選一個來用
application/x-ms-application, application/x-ms-xbap,
application/vnd.ms-xpsdocument, application/xaml+xml
其他瀏覽器目前看來
text/html
直接檢查這個MIME就行了

上面只針對HTML標準的多媒體tag有用
其中Fx的audio多了幾種音訊格式定義(見下方) 但不影響判斷




不過像是embed這類型的話...
下面這個是針對embed&audio的測試(只簡單測了GC IE Fx)
http://pastebin.com/vrt3iNp3
比對一下和前面一份的結果

embed的部分應該是無法判斷了(至少IE以外是無法)
GC&Fx直接跟連結一樣了
IE的話則是直接丟給WMP 所以UserAgent不同 但都是*/*的Accept Header

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.216.102
johnny1972:推認真詳細1F 09/16 09:03

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 166 
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇