iOS 网络错误-分类
2016-01-18 21:10
405 查看
在进行网络数据交换的时候总是遇到各种各样的错误。
这些网络错误是来自client还是server。
我们来梳理一下:
我们将错误分为三个大类
操作系统错误
http请求错误
应用错误
1.操作系统错误是因为数据包没有到达预定目标导致的,造成原因可能有:
没有网络——没有连接网络
无法路由到目标主机——主要是因为目标主机可能位于隔离网络或者处于离线状态。导致的。
没有应用监听目标port——请求到达目标主机后数据包会发送到指定的port号。假设server没有监听这个port号或者是有太多的请求在排队那么连接请求就会被拒绝。
无法解析目标主机名——URL载入系统会返回错误。
通常这些错误由配置错误或是尝试訪问没有外部名字解析且处于隔离网络中的主机造成的。
在iOS的URL载入系统中,操作系统错误会以NSError对象的形式发送给应用。ios通过NSError在软件中传递错误信息。使用NSError的主要优势在于NSError对象包括了错误域属性;
有非常多网络请求问题是由于网络没有连接造成的,所以我们每次进行网络请求的时候都须要进行检查。由于移动设备会移动出网络。这里我们通常採用Reachability。
http错误:
http错误是因为http请求。httpserver或应用server的问题造成的。http错误通过http响应的状态码发送给请求client。
5类http错误
信息性质的100级别——来自httpserver的信息,请求的处理将会继续,只是带有警告。
成功的200级别——服务请接受了请求。
重定向须要的300级别——资源已经移动了须要重定向。
client错误400级别——表示client发出了server无法正确处理错误的数据,比如不对的http头导致这个范围错误。
下游错误500级别——表示httpserver与下游应用server之间出现了错误。
应用错误
这些错误是是由执行在服务层之上的业务逻辑和应用造成的。
错误可能是代码问题,比如异常,也可能是语义问题。比方向服务提供了无效账号等。
又比如银行卡中有500元钱而你要提1000元现金,这就会错误发生。
来自ios网络高级编程。
这些网络错误是来自client还是server。
我们来梳理一下:
我们将错误分为三个大类
操作系统错误
http请求错误
应用错误
1.操作系统错误是因为数据包没有到达预定目标导致的,造成原因可能有:
没有网络——没有连接网络
无法路由到目标主机——主要是因为目标主机可能位于隔离网络或者处于离线状态。导致的。
没有应用监听目标port——请求到达目标主机后数据包会发送到指定的port号。假设server没有监听这个port号或者是有太多的请求在排队那么连接请求就会被拒绝。
无法解析目标主机名——URL载入系统会返回错误。
通常这些错误由配置错误或是尝试訪问没有外部名字解析且处于隔离网络中的主机造成的。
在iOS的URL载入系统中,操作系统错误会以NSError对象的形式发送给应用。ios通过NSError在软件中传递错误信息。使用NSError的主要优势在于NSError对象包括了错误域属性;
有非常多网络请求问题是由于网络没有连接造成的,所以我们每次进行网络请求的时候都须要进行检查。由于移动设备会移动出网络。这里我们通常採用Reachability。
http错误:
http错误是因为http请求。httpserver或应用server的问题造成的。http错误通过http响应的状态码发送给请求client。
5类http错误
信息性质的100级别——来自httpserver的信息,请求的处理将会继续,只是带有警告。
成功的200级别——服务请接受了请求。
重定向须要的300级别——资源已经移动了须要重定向。
client错误400级别——表示client发出了server无法正确处理错误的数据,比如不对的http头导致这个范围错误。
下游错误500级别——表示httpserver与下游应用server之间出现了错误。
应用错误
这些错误是是由执行在服务层之上的业务逻辑和应用造成的。
错误可能是代码问题,比如异常,也可能是语义问题。比方向服务提供了无效账号等。
又比如银行卡中有500元钱而你要提1000元现金,这就会错误发生。
来自ios网络高级编程。
相关文章推荐
- httpd-2.2(2)
- iOS网络-NSURLSessionConfiguration会话配置
- java基础学习总结——网络编程
- javaweb学习总结(十)——HttpServletRequest对象(一)
- javaweb学习总结(八)——HttpServletResponse对象(二)
- javaweb学习总结(七)——HttpServletResponse对象(一)
- javaweb学习总结(四)——Http协议
- \\ip\c$找不到网络名(或网络路径)
- HTTP状态码搜集
- JAVA网络编程
- tomcat配置https
- iOS网络-NSURLSessionUploadTask文件上传
- iOS网络-NSURLSessionDataTask大文件离线断点下载
- ios9 http请求不能使用
- linux网络相关
- 关于Https安全性问题、双向验证防止中间人攻击问题
- AweSomePlayer http流读取过程
- Android volley 使用OkHttp3.0
- ANDROID开发之http调试常见错误
- 惠普打印机网络驱动安装方法