如何确定HTTP请求是来自浏览器还是其他类似Web服务?
我知道有一个用户代理,但这似乎主要针对Web浏览器。例如,我知道请求来自谷歌地图或youtube。该请求来自一个系留设备。
如果他们有不同的用户代理,我可以举个例子。
感谢。
答案 0 :(得分:8)
绝对无法确定是否有来自浏览器的请求或其他发出HTTP请求的内容。
HTTP协议允许客户端任意设置用户代理。
可以尝试确定另一端的东西是否是浏览器,例如通过执行JavaScript并测量结果。但是,一些机器人可以执行JavaScript,并非所有浏览器都执行JavaScript,因此测试类型永远不会是完美的。
表现良好的“机器人”(如常见的搜索引擎蜘蛛)将使用特定于他们的用户代理来识别自己。这里有一个非常全面的用户代理列表:
答案 1 :(得分:0)
您无法确定,但您可以解析User-Agent标头并了解它可能是什么。
以下是其中一些列表。 我怀疑它是否全面,但你应该明白这个想法: http://www.zytrax.com/tech/web/browser_ids.htm