博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 网络错误-分类
阅读量:5938 次
发布时间:2019-06-19

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

在进行网络数据交换的时候总是遇到各种各样的错误。

这些网络错误是来自client还是server。

我们来梳理一下:

我们将错误分为三个大类

  1. 操作系统错误
  2. http请求错误
  3. 应用错误
1.操作系统错误是因为数据包没有到达预定目标导致的,造成原因可能有:
  1. 没有网络——没有连接网络
  2. 无法路由到目标主机——主要是因为目标主机可能位于隔离网络或者处于离线状态。导致的。

  3. 没有应用监听目标port——请求到达目标主机后数据包会发送到指定的port号。假设server没有监听这个port号或者是有太多的请求在排队那么连接请求就会被拒绝。
  4. 无法解析目标主机名——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网络高级编程。

转载地址:http://bnvtx.baihongyu.com/

你可能感兴趣的文章
项目中使用的spring 注解说明
查看>>
Bootstrap模态框添加滚动条(一级)
查看>>
大二暑假第八周进度报告
查看>>
453D Little Pony and Elements of Harmony
查看>>
linux下实现简单的自动化部署
查看>>
湖南省第6届程序大赛第5题 内部收益率
查看>>
Oracle学习
查看>>
vuejs源码解析
查看>>
外包项目的感悟
查看>>
集合-HashMap
查看>>
事件对象
查看>>
MyCat部署运行(Windows环境)与使用步骤详解
查看>>
springMVC+mybatis用户登录实例
查看>>
node.js环境下写的vue项目
查看>>
一本通 1261:【例9.5】城市交通路网
查看>>
CodeForces 601B Lipshitz Sequence
查看>>
wp 常用messagebox
查看>>
为何没有asia/beijing时区?
查看>>
HttpServletRequestWrapper的使用
查看>>
Spring实战5-基于Spring构建Web应用
查看>>