【IT168 评论】大概是有英雄情结的缘故,小时候看铁道游击队,就很崇拜那些扒火车的英雄行为。如今,扒火车早已不再是英雄行为,相反是犯罪行为。警察叔叔告诫我们要做到排队守纪。于是,大冬天排长队买火车票就变成了一年一度中国的一道奇观,它的名字叫春运。
而随着刘志军以及他的高铁帝国轰然倒塌,铁老大终结了大跃进的时代。在痛定思痛之后,铁道部终于推出了翘首以盼的网络售票,初衷是为了彻底跟“一票难求”,“黄牛党”说拜拜,给全国人民拜个早年。不过,铁道部在没有大规模模拟压力测试的情况下,冒然上线,并指定唯一一个官方网络售票网站12306,这无异于开启了又一轮新的大跃进时期。
笔者认为,相比于传统的现场售票,12306网络售票不过是把马路排长队变成网络排长队而已。“黄牛党”也许少了,各种五花八门的“抢票器”却应运而生。下面,我们就一起做一下盘点。
l 、反复提交 解决登录问题
据很多网友抱怨,由于用户登录人数众多造成网络拥塞, 12306网站经常出现无法登录。作为过来人,笔者十分理解人们为了小小的火车票,坐在电脑前,不厌其烦,很无奈地一遍又一遍的登录。问题是,当你尝试200次还未能登录后,你是否有砸电脑或是踹两脚的冲动?
要解决这个问题,一个习惯性的想法是反复提交,实现自动登录。可是如何绕过每次重新输入密码呢?这里我们利用session中通用的bug。姑且算是Hack吧。下面,我们使用Javascript代码做一下演示:
2. $.ajax({
3. type:"POST",
4. url:"https://dynamic.12306.cn/otsweb/loginAction.do?method=login",
5. data:"user="+username+"&pwd="+password+"&randCode="+$(randCode).val(),
6. success:function(data){
7. if(data.indexOf(",欢迎您!")!=-1){
8. isLoginOk=true;window.open("https://dynamic.12306.cn/otsweb/order/querySingleAction.do?method=init","main")
9. }else{
10. if(!isLoginOk){
11. login()
12. }
13. return false
14. }
15. }
16. })
17. }
二、 化繁为简 解决速度问题
网络速度慢也成为了大家抱怨的一个焦点。除了网络带宽外,恐怕和前端的JS与CSS不合理设计脱不了干系。系统将JS和CSS加载起来毫无意义,用户点击“预定按钮”,就会跳出33个CSS格式请求,让人瞠目结舌。每个耗时5-6秒的,直接造成网络繁忙;网站全部采用旧时的iframe架构,每次点击时候都要全部加载页面,极大拖慢网速。
对付这个问题,一个习惯性的想法是扔掉不必要的JS,CSS,iframe,外加浏览器加速工具。于是,一个精简版的12306马甲就此诞生了,它只集成了相应的HTML部分,而把其它部分抛向了九霄云外。带来的直接效果就是减肥成功,轻松上阵。速度上去了,订到票的成功率自然会大些。
三、雾里看花 谨防钓鱼网站,流氓软件
技术从来都是把双刃剑,能救人也能杀人。买票难催生了“抢票器”,同时也催生了大量钓鱼网站,流氓软件,木马病毒。我们依次也盘点一下。笔者认为,最无聊的“抢票器”是中看不中用,界面做的好看,功能描述花哨,比如秒杀火车票等字样,名义上买票,实则为诱骗点击而徒有虚名。
相比之下,这类网站只是骗点击率而已,恰逢良机,此时不出,更待何时?所以结果也不会太坏,忍了。最流氓的抢票软件是打着“抢票器”旗号,点击后弹出各种各样的网游,美女,购物窗口等等。不过,对于大都数凡人而言,说不定习以为常了,也无大碍。
最狠毒的要算捆绑木马了,植入病毒程序,破坏电脑数据,窃取银行卡机密等。这里提醒大家务必安装360安全卫士,腾讯QQ医生。
最可怕的是钓鱼网站。挂羊头,卖狗肉。看起来像官网,实际上属钓鱼网站。结果银行卡账号密码泄露了,钱也交了,就是票还没取着。大冬天的,你说,是不是很悲催?
四、要想彻底解决买票难 打破垄断是关键
尽管网上出现了各种版本的订票攻略,秘籍,宝典。各种抢票软件五花八门, 层出不穷,甚至是淘宝热卖。笔者认为,背后核心问题是12306网站瘫痪。从技术层面上讲,有人将12306瘫痪追究为系统架构规划问题,而问题的实质是利益垄断。
12306网站作为唯一火车票售票网络入口,承载了太多自身无法承受的极限负载,出现一时瘫痪也是清理之中,不可避免的。从这个角度,铁老大无形中担当了抢票软件的幕后推手。倘若铁道部更加开放,将网络售票这块蛋糕分给民营企业吃,实现12306网站分流与负载均衡。可能就不会如此频繁地出现“系统忙,稍后再试”。而如果引入支付宝等第三方支付,可能就不会出现12306官网回应“付款成功却无法购票”现象解释的那样,“这是由于网络等原因导致银行的支付结果数据没有及时回传至12306网站。”