博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异网间缓存引发的问题分析及解决
阅读量:2432 次
发布时间:2019-05-10

本文共 853 字,大约阅读时间需要 2 分钟。

最近项目上遇到一个很纠结的问题,公司测试好好的东西到客户现场就出这样那样的问题。

一、      问题描述

公司项目为一个B/S架构的WEB项目,在客户现场用浏览器登录后再次登录就报用户名密码错误,而在公司测试始终不会出现这个问题。

用户登录模块实现逻辑说明:用户登录密码是做了RSA加密处理后进行传输的,在进入登录页面前需要到后台获取加密秘钥,然后用获取到的秘钥对密码进行加密处理后传到后台进行密码验证,验证通过则允许登录,验证不过则提示错误。

二、      问题分析

程序都是一套,不同的只是客户环境和公司环境的差别。首先考虑的原因可能是秘钥过期了,刷新页面重新获取秘钥即可,这一招在公司网络中完全有用,在客户现场就失效了。第二种原因可能是浏览器缓存造成,清理浏览器缓存重新刷新页面,公司可以刷新到最新的页面,但是在客户现场却刷新不到最新的页面,以为浏览器坏了,换个浏览器发现还是刷新不到最新的页面。在浏览器里面直接下载一个服务器上修改过的js文件,发现下载的也是服务器上修改前的版本,说明不是用户电脑或浏览器问题,应该是网络原因了。发现客户现场使用的是联通的宽带,我们服务器是部署在电信机房,网上搜索了一下,不同运营商间网络接入是要进行结算的,而且结算费用很高,特别是联通接入电信的网,结算费用存在很大逆差,我想,为了减少接入电信的次数减少接入产生的流量,联通构建了一套自己的异网访问缓存机制,只要URL不变,就直接取自己缓存服务器上的内容,而不去电信的网络中获取文件了。如果合理利用这种缓存机制,也可以提高应用服务效率,如果运用不好就会出现我遇到的问题。

三、      问题解决

一般浏览器缓存都是通过URL来作为KEY标识缓存是否存在的,试了一下,联通缓存服务器也是这么干的,要规避它这种缓存其实也很简单,只要每次发起的URL请求不一样就可以了,例如请求加个随机数参数。

会取到缓存:http://ip:port/server/login

不会取缓存:http://ip:port/server/login?r=一个随机数

你可能感兴趣的文章
UVa 10917 Dijkstra
查看>>
CF403B/CF402D
查看>>
CF402E / 403C
查看>>
cf404b
查看>>
cf404c
查看>>
cf404d
查看>>
武大网络预赛 Problem 1537 - A - Stones I
查看>>
武大网络预赛 Problem 1545 - I - Twenty-four
查看>>
ZOJ Problem Set - 3772 Calculate the Function 矩阵+线段树
查看>>
ZOJ Problem Set - 3768 Continuous Login
查看>>
某山面试 3、实现如下函数:
查看>>
malloc的小知识
查看>>
UVALive 6755 - Swyper Keyboard
查看>>
uva_11029 Leading and Trailing 快速幂 数的n次方前几位
查看>>
uva10023 手算开方的方法
查看>>
uva11027
查看>>
欧拉函数——从容斥定理和积性函数的性质谈开
查看>>
容斥原理 带禁止位的排列
查看>>
模拟带Servlet技术的HTTP服务器的Java实现
查看>>
第一个JSP程序(JSP入门)
查看>>