设为首页 收藏本站
查看: 1982|回复: 0

[经验分享] PHP中精准快速的UA识别

[复制链接]

尚未签到

发表于 2017-4-9 14:06:40 | 显示全部楼层 |阅读模式
  UA:user-agent 这在PHP提供的服务器变量中就能得到。user-agent 识别的目的是什么?
  1、是什么浏览器?这已不需要了。CSS的HACK可以帮助你按浏览器正确渲染。
  2、浏览器类型:这是肯定要的,我们最想要的,就是了解它是PC机中的,还是手机中的,这样,我们可以选择不同的页面。
  3、user-agent:表面上是与 浏览器类型是同一概念,实际是不一样的。user-agent的范围要比浏览器类型更广。因为,来访者不仅有浏览器类,同时还有应用程序,搜索机器人,以及垃圾网站前来抓取信息的。对于垃圾网站前来抓取信息的,当然,很多是伪装的,对付它,那不在UA识别中处理,而是在IP路由中处理的事情了。
  MVC模式中的UA路由,最主要是要让客户端请求,最终显示对应的正确的页面。
  但PHP中没有很好的函数,或可扩展,可维护的第三方开源,能够真正快速进行UA识别。
  get_browser函数,虽说是C语言级别的,但它的相关的INI文件却要实时下载,并且,好几百K的一个INI大文件,在其中搜索正确的UA,然后,再根据不同的算法算出对应的结果,效率快时,当然好,一旦下载网速不行,或进程太多,机器内存紧长,速度马上直线下降。这不能不说是一个悲剧。
  最好的做法,是将现在所有的UA字串,完全拆分出来,我们就会发现,一些字串,肯定是ROBOT专有,一些字串,肯定是MOBILE专有。由此,做成一个CSV,那么,现在这样的数据,只是两个字段的不足1000条记录的文件了。于是文件大小也只是降到了20KB以内。要处理的数据缩小了25倍左右。速度比原来的最快速度加快20倍,比原来的最慢速度加快200倍以上了。
  为什么呢?想想1000条记录,折半查找,需要几次找完?并且,在20KB文本中折半查找不到1000行的记录,肯定远比在400多K的文件当中查找不可折半查找的2万多行的配置记录要快多了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-362488-1-1.html 上篇帖子: 在PHP中全面阻止SQL注入式攻击之二 下篇帖子: php中使用ajax检测用户名(举例)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表