1.背景知识
session,静态请求,缓存
2.问题现象
这两天发现有个页面微信授权老是有问题,问题在android手机比较严重,苹果手机上基本上没有发现。我的授权方式是,拿到微信的union_id,通过该参数获取对应的用户,进行登录,前一阵我把该方式调整为web拦截器了,通过拦截特定的参数,进行判断是否需要自动登录,不过该问题好像一直授权不成功。
3.影响范围
部分手机wap访问受影响。
4.问题原因
静态页面走了缓存没走网络请求
5.问题分析过程
5.1今天下午开完会,有时间踏踏实实查问题,本来最好的办法是看日志+本地环境调试,不过没有复现。
5.2.最后用Charles抓包,准备对比cookie中的jsession值。看看是不是jsession值被修改了。
5.3.发现进行授权的页面xxxx.html?union_id=xxxxxxxxxxxx#home,没有抓到网络包,问了相关负责人说跳转没有问题,而且页面效果也跳转到当前页了xxxx.html。
5.4.本来怀疑抓包软件出问题了,不过用苹果测该链接,发现没有问题,反应过来可能该页面使用了缓存,没走网络请求。
5.5 原来前一阵,前端调整,把jsp渲染的页面都改成html,然后用ajax获取数据做js渲染。致使浏览器默认使用了缓存方式。没有进行网络请求,也就没有后续拦截器的自动登录处理。
6.解决办法
跳转请求加时间戳,简单解决,让浏览器缓存失效。
7.后续处理措施
无
8.经验教训
全栈工程师虽然专业度不精,各个都会,不过排查问题比较有优势。
还有前端架构调整,修改为前端渲染,最近把很多前端的问题引入了后端逻辑,排查时候需要注意。
9.RCA类型
前端架构调整,引起的问题。