作者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
1F:推 johnny1972:推认真详细 09/16 09:03
2F:→ danny8376:其实只是闲闲没事做的大学生而已www 09/16 12:05
3F:推 LaPass:非常感谢 m(_ _)m 09/16 12:39
4F:推 alpe:推一个 09/16 20:51