对于移动应用程序,有效的假设是网络可能是间歇性的,或者当用户继续移动时可能会从一个网络切换到另一个网络。例如,您的设备已连接到startbucks wifi,并且您在使用应用程序之前拿起咖啡并走出商店 - >您的移动设备网络可能会从wifi切换到运营商网络3G / 4G / LTE。即使使用运营商网络,也可能会根据您所在位置的覆盖范围在3G / 4G / LTE之间切换。
问题, 这种间歇性网络或频繁的网络交换会影响http通信吗? 例如,使用Wifi发送了http请求,当服务器正在处理请求时,设备已经切换到4G。设备是否仍然能够收到响应? 如果是,那么Http或TCP如何设计支持这种情况? 如果否,我们是否应该尝试从应用层解决问题?怎么样?
答案 0 :(得分:2)
设备是否仍然能够收到回复?
对于目前的做法,编号。网络切换后:
实际上,您可以进行一个简单的实验来验证这一点:在互联网上放置一个网页,让网络服务器延迟页面传送30秒。访问此页面并在等待响应时切换网络。
然而,这是移动世界中的一个典型问题,因此有些工作正在为移动设备提供常量IP ,这将使设备保持TCP& HTTP 活着从一个网络切换到另一个网络。您可以查看维基百科中的Mobile IP,了解有关各种技术和协议的更多信息。
如果否,我们是否应该尝试从应用层解决问题?
这取决于您是否可以容忍应用程序的网络中断。如果它是一个静态网页,我认为完全可以解决这个问题,并等待将来移动IP 技术的改进。如果它是一个高度依赖网络的应用程序,如在线视频或股票市场应用程序,我认为这个问题应该在应用程序层解决。
以及如何?
有3种方法可以解决/解决此问题(可能更多):