HTTP GET请求302重定向问题
1.问题描述
① 在华为云服务器中搭建了java环境,并在tomcat中部署了一个空的web项目
② 在此web项目中上传了一个名为:plugin_DTDREAM_LIVING_DEHUMIDIFIER_N20A3_a1JUeSqpS3D.zip的压缩文件,当时通过chrome浏览器访问连接:
http://x.x.x.x:8002/plug/plugin_DTDREAM_LIVING_DEHUMIDIFIER_N20A3_a1JUeSqpS3D.zip可以下载到此文件
③ 我在此linux服务器改目录下将此文件删掉后,又通过chrome浏览器访问此连接还可以下载到此文件
2.解决问题过程描述
① 最开始以为是缓存问题,将tomcat缓存全部清了一遍
把tomcat work目录下的文件清空和tomcat conf目录下生成的项目文件夹也删掉,重启tomcat,发现还可以下载到此文件
② 然后又把linux中的缓存清空了一遍
查看缓存的命令
free -m
清理缓存的命令
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
然后将服务器重启,发现还可以下载到此文件
③ 又以为是文件删除了空间没有释放掉
通过命令 :lsof -n |grep deleted 查看已删除但未释放空间的进程 参考:https://www.linuxidc.com/Linux/2017-06/144975.htm
然后kill掉了这些进程 发现还可以下载到此文件
当时已经有点心灰意冷了,然后无意间发现了一个问题,访问此链接只要不连接公司的网络就会出现404找不到文件,连接公司的网络就能下载,于是想抓包看下
④ 最后通过抓包工具抓了一下请求
wireshark过滤规则及使用方法:https://blog.csdn.net/wojiaopanpan/article/details/69944970
发现请求地址被302重定向了,并且被重定向的地址并不是我服务器的地址,是华数的服务器的地址,我们公司的网络用的是华数的,至于为什么我的文件会跑到华数的服务器上,就不得而知了。
浏览器自动把我的请求地址重定向了,最后找到了一篇文章讲解浏览器302重定向的次数限制:http://www.cnblogs.com/doseoer/p/8569189.html
3.解决办法
修改java http get请求方法 可以参考http://www.ibloger.net/article/3069.html 此方法我也没测试过,不确定是否可用