如何确定HTTP请求是来自浏览器还是其他类似Web服务?

Mic*_*uth 11 http httprequest http-headers

如何确定HTTP请求是来自浏览器还是其他类似Web服务?

我知道有一个用户代理,但这似乎主要针对Web浏览器.例如,我知道请求来自谷歌地图或youtube.该请求来自一个系留设备.

如果他们有不同的用户代理,我可以得到一个例子.

谢谢.

Eri*_* J. 9

绝对无法确定是否来自浏览器或其他发出HTTP请求的请求.

HTTP协议允许客户端任意设置用户代理.

可以尝试确定另一端的事物是否是浏览器,例如通过执行JavaScript并测量结果.但是,一些机器人可以执行JavaScript,并非所有浏览器都执行JavaScript,因此测试类型永远不会是完美的.

表现良好的"机器人"(如常见的搜索引擎蜘蛛)将使用特定于他们的用户代理来识别自己.这里有一个非常全面的用户代理列表:

http://www.user-agents.org/

http://www.botsvsbrowsers.com/