日期:2014-05-17  浏览次数:21265 次

服务器,怎么判断一个http请求是来自浏览器还是其他终端?
服务器,怎么判断一个http请求是来自浏览器(比如ie、ff、chrome..)还是其他终端(比如安卓、iphone、塞班...)?
情况是这样子的,服务器需要判断客户端是浏览器还是其他?然后做出不同的处理,返回不同的结果:
Java code
if(浏览器){
//处理方案A
//return 结果a
}else{
//处理方案B
//return结果b
}


------解决方案--------------------
从request中获取HEAD信息,会有:
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Host: www.baidu.com
Connection: Keep-Alive


但要注意的是,网络爬虫或其它工具会模拟这个信息,所以仅从这类信息无法绝对实现区分,只能是从方便用户的角度出发,想防范啥基本是做不到的。
------解决方案--------------------
http://blog.csdn.net/iisgirl/article/details/7237300