抢购火车票原理?
12306的防刷票机制,本质就是限制用户请求的频率。当某用户请求频率达到一定阈值时,就会要求此用户进行验证,例如验证图片验证码、滑块验证码,或者手机短信验证等,只有验证通过后才能继续访问。
这就好比,人要在铁道口通过是必须等待火车通过以后,当路口没有车时,铁路警察就会示意放行。如果铁路上的火车多了,或者火车变长了,那么人通过的速度自然会下降。因此我们可以想象,高峰期时12306应该被大量的请求压制着,这些请求的响应速度会非常缓慢,可能你这边才刚刚看到结果,那边火车票已经售完了。
然而,很多抢票软件(软件机器人)的原理,就是直接跳过浏览器交互过程,直接与12306服务器进行交互。而且这些软件都有自己的防限制策略,例如:
本地判断余票信息
多账号登录进行并发请求
使用一些手段绕过验证码(破解、打码平台等)
以上这些手段的综合作用,就相当于在抢票过程中使用了作弊工具,所以这些软件能够比正常用户更快的知道哪儿有票、或者能够更快的进行刷票操作。
从技术角度上讲,我们能做的其实很简单,就是尽可能的提高抢票软件和正常用户的抢票速度差,这个过程会存在持续对抗,不断的拉锯。举个例子,例如某抢票软件能够支持本地判断有余票时再进行下一步抢票操作,于是我们在进行本地判断前就会加入一个滑块验证。这个抢票软件为了绕过滑块验证就使用了打码平台,于是我们又在图片中加入了更复杂的干扰线。如此对抗,如此反复。
当然,从法律以及人情世故角度上来说,这并不是长久之计。