我注意到当Android操作系统的用户访问我的网站时,每个页面上会不断发生两个请求。第一个是正常的浏览器请求,第二个来自“Dalvik”。例如:
据我观察,用户并没有遇到实际问题,但是我们在错误日志记录中发现了这些尝试。所以我的问题是:如果浏览器代理指示“Dalvik/..*”,我能否安全地阻止所有访问尝试?用户会有任何不良影响吗?考虑到与Dalvik相关的请求实际上没有重新发布真实数据或携带会话,这似乎不太可能。但是希望有更多Android经验的人可以提供一些反馈,例如,我是否应该发出特定的HTTP头/状态代码,如“401未经授权”或“400错误请求”?
感谢您的任何帮助。
“GET / HTTP/1.1” 200 2126 “-” “Mozilla/5.0(Linux;Android 5.0.2;SAMSUNG SM-G925F/G925FXXU1AOD8 Build/LRX22G)AppleWebKit/537.36(KHTML,like Gecko)SamsungBrowser/3.0 Chrome/38.0.2125.102 Mobile Safari/537.36” 1229 2802
“GET / HTTP/1.1” 200 2117 “-” “Dalvik/2.1.0(Linux;U;Android 5.0.2;SM-G925F Build/LRX22G)” 546 8729
据我理解,第一个请求来自实际浏览器,而另一个则来自运行浏览器的虚拟机(Dalvik)。问题在于,Dalvik请求不使用相同的cookie和/或POST数据,这会触发服务器端的错误。例如,当用户注册帐户时。正常的浏览器会通过POST数据进行发送,但是Dalvik请求只会在动作url上执行GET。类似地,如果用户已登录,Dalvik将尝试在基于权限的页面上进行GET,因为它没有会话,可能会将其重定向到其他位置。据我观察,用户并没有遇到实际问题,但是我们在错误日志记录中发现了这些尝试。所以我的问题是:如果浏览器代理指示“Dalvik/..*”,我能否安全地阻止所有访问尝试?用户会有任何不良影响吗?考虑到与Dalvik相关的请求实际上没有重新发布真实数据或携带会话,这似乎不太可能。但是希望有更多Android经验的人可以提供一些反馈,例如,我是否应该发出特定的HTTP头/状态代码,如“401未经授权”或“400错误请求”?
感谢您的任何帮助。