我们的项目里给移动客户端提供的api,有时要判断请求方(用户)来自Android还是iPhone,在服务器端代码通过cookie判断的,比如cookie('qm_device'),那么这个cookie是移动客户端请求url的时候伪造的一个http请求头中的cookie吗?
以上没讲清楚,大概看看,下面举个例子:
比如我们在PC端判断请求是否来自移动端应用,我们会判断cookie('qm_name')值是否为zhe,为zhe的就认为是来自移动端,那么这个cookie应该是移动端发过来的吧
我们的项目里给移动客户端提供的api,有时要判断请求方(用户)来自Android还是iPhone,在服务器端代码通过cookie判断的,比如cookie('qm_device'),那么这个cookie是移动客户端请求url的时候伪造的一个http请求头中的cookie吗?
以上没讲清楚,大概看看,下面举个例子:
比如我们在PC端判断请求是否来自移动端应用,我们会判断cookie('qm_name')值是否为zhe,为zhe的就认为是来自移动端,那么这个cookie应该是移动端发过来的吧
cookie是设计给浏览器用来保存网站访问状态的,如果是native请求来的,那就应该如你所说是它自己造的。
http规范里面有专门的请求头user-agent来判定设备,建议遵守规范,而不是自作聪明搞到cookie里面。
以前自己写的请求框架是这样做的:
HttpURLConnection conn;
conn.setRequestProperty("User-Agent", "Android");
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答2.7k 阅读
1 回答2.1k 阅读
1 回答1.5k 阅读
既然你一定要这么判断的话,随意。将其加在header头即可
用session吧?
cookies无论是值或者键都可以伪装。而session只能伪装seesion_id.
session是服务端设置值的,每次get或者post携带上这个就可以了
PHP可以用
$_SERVER['HTTP_USER_AGENT']
来获取浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码。JSP:
http://www.cnblogs.com/sink_cup/archive/2011/03/15/http_user_agent.html