今天在DEBUG代码下载small时发现,我们的重定向存在奇怪的问题,导致目录树刷新失败:
1. 错误的重定向地址。
2. 重现向或链接的IP为美国或不存在的IP。
GET /boxlist/1/small_20110827020002.zip HTTP/1.1
Host: downlist.baofeng.net
Accept:*/*
User-Agent: Mozilla/4.0
Connection: Keep-Alive
Cache-Control: no-cache
IP地址: 159.161.112.114 来 自: 美国
233.120.192.210 未知IP
这两个IP都无法下载samll包数据。重定向这个偶尔会下载不了:
False + 0.531 0.017 s GET 302 238 text/html http://downlist.baofeng.net/boxlist/1/small_20110827020002.zip http://124.193.109.38/proxy/downlist.baofeng.net/boxlist/1/small_20110827020002.zip#ickey=1&t=1314437412
详细如图:
---------------------------------------------------------------------------------------
简单描述一下运营商的网络通信模型:
上述模型在通信中是没有问题,作为小运营商主要是充当一个代理转发的工作,架构简单,通信比较流畅,只要带宽没有瓶颈,基本只需要少量的服务器的硬件实施就可以完成了这个标准的网间通信。
但是,有个名词叫“网间流量”,小运营商的带宽计费模型是通过网间流量进行计费,也就是向后端网络请求的带宽量越高,那么本月的网间流量成本也就越多。
为了有效的解决及降低网间流量的成本,就有了节省流量的网间通讯模型。如下:
上述通信模型能够极大的降低网间通信的流量成本,但是无故增加了几次本不该出现的请求(上述1-6的请求、响应模型)
对于我们的下载URL,在原本脆弱的中国互联网实施上,又无故添加了几次失败的折损。
1) Request请求分析(错误可能:IP分配或解析错误)
2) 302请求的跳转(错误可能:跳转的URL被截断,URL地址不正确等)
在调试代码中发现的问题基本上就是上述节省流量网间通信的真正问题。
URL:http://124.193.109.38/proxy/downlist.baofeng.net/boxlist/1/small_20110827020002.zip#ickey=1&t=1314437412
这是标准的转向mirror 的下载请求URL。
如何解决,我想这是大家最关心的问题:
解决办法其实比较简单,因为了解运营商的网间流量判定规则,其实就很容易解决问题了。我们的客户端HTTP请求中本身没有contentType字段,所以只需要在请求URL的文件后缀名上做文章就可以,运营商一般不敢截取的是JSP,PHP等文件后缀,否则运营商会被投诉的。
- 大小: 169 KB
- 大小: 86.7 KB
- 大小: 31 KB
- 大小: 47.9 KB
- 大小: 8.2 KB
分享到:
相关推荐
wordpress发布文章302跳转到指定链接
比如说浏览器打开了一个单页面(SPA)应用,过了一段时间token(或者session)过期了,这个时候页面上发起 Ajax请求之后,后端返回302状态码跳转到login页面。 我这是使用的是 Vue + axios ,发现 axios 无法拦截到 ...
SpringMVC请求转发和请求跳转,处理模型数据
PHP实现获取当前链接地址的301或者302跳转之后的真实链接地址.zip
首先在父页面的javascript给定义一个window.name,并赋予一个字符串值,如window.name="test",其中赋予的字符串值可以随意定义,...,在子页面提交后即可刷新父页面跳转到指定的请求页面. 此资源由网友提供。谢谢!
上面这种方式实现页面跳转附带参数,容易造成信息泄露; layui使用form表单实现post请求,避免信息泄露(设置form表单隐藏,也可以初始化时隐藏): 这里是在数据表格查询数据时的按钮操作,其他操作类似 ...
ajax重写方法搭配后台filter返回status实现ajax请求跳转登录页面
可实现点击链接跳转到微信小程序,目前支持短信、邮件、百度、知乎、抖音、快手、QQ、微信、B站、今日头条、浏览器、自己开发的APP以及几乎所有的APP。 请勿商业运营,违法使用和传播!仅供研究学习使用!
界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转界面跳转
'以下是设定请求的ID跳转,如果请求的ID为空或无ID请求就跳转到sitemap.html strid=Request("id") if strid="" or not isnumeric(strid) then Response.Redirect ("http://www.52steel.com/sitemap.html") response....
最新微信jar包,支持微信分享,登陆,公众号开发,支持异动app跳转微信小程序 亲测有效
js页面跳转js页面跳转js页面跳转js页面跳转
Springboot请求跳转到jsp的Demo
redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。 实例 Example ...
H5页面跳转微信小程序的需求是普遍存在的。由于微信小程序是一种只能在微信内部访问的应用程序,而H5页面可以在任何浏览器中访问,因此需要通过跳转来实现两者之间的衔接。 对于用户来说,H5页面跳转微信小程序可以...
"path": "",//这里是小程序的页面路径,注意,不可以是tabber页面,空的时候就跳转首页 "query": "" }', ), ); $result = file_get_contents($url, false, stream_context_create($options)); $link = json_decode($...
iOSAPP跳转微信小程序的Demo,仅用于演示作用,集成细节在博客中有详细介绍,可移驾这里:https://blog.csdn.net/fuzheng0301/article/details/100036332
主要介绍了iOS 拦截重定向302跳转的方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
其实,想表达的仅仅是,在js中通过[removed].href控制页面跳转时,有时会跳转至缓存页面,并没有真正去请求要跳转的地址,导致页面数据未能及时加载刷新。 直奔code… 解决办法: 在HTML中埋入隐藏from,通过js调用...
支持android studio上运行,简单的安卓界面跳转,点击两次返回可退出安卓程序界面,这是这样子呀呀呀呀