美文网首页
iOS的TCP/IP协议族整理

iOS的TCP/IP协议族整理

作者: peal | 来源:发表于2016-03-18 09:26 被阅读710次

    写在前面:最近整理东西有点上瘾呢,难道这就是创作的快感吗?(哈哈哈哈哈)网络协议,在大学专门开了一门课,我们的叫《网络协议分析》,宝宝记忆好好哦~~~老师上课全英文课件 ~~
    iOS的TCP/IP协议族整理参照了http://www.cocoachina.com/ios/20160223/15347.html
    感谢作者的无私分享~~

    TCP/IP

    TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,传输控制协议/互联网络协议)协议。
    TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式。 通常我们说TCP/IP是说TCP/IP协议族,它是一组协议的代名词。包含了很多别的协议。

    HTTP协议

    HTTP(HyperText Transfer Protocol),超文本传输协议,是互联网上应用最广泛的一种网络协议。它规定了客户端—服务器之间的数据传输格式。

    HTTP优点
    • 简单快速:HTTP协议简单,通信速度很快
    • 灵活:允许传输任意类型的数据
    • 短连接:每次连接只处理一个请求,服务器对客户端的请求作出响应后,马上断开连接.这种方式可以节省传输时间.

    HTTP协议的使用

    1 请求 :客户端向服务器索要数据,

    一个完整的http请求包含:请求行,请求头,请求体三个部分。

    • 请求行:包含请求方法,请求资源路径
    • 请求头:客户端的环境描述
    • 请求数据:客户端发给服务器的具体数据,如图片,文件等。
    2 响应:服务器返回客户端想要的数据

    与请求对应,响应也有三部分:响应行,响应头,响应内容。
    响应行:包含http协议版本,状态码,状态英文名称。
    "HTTP/1.1 200 OK"
    200就是请求成功

    • 1xx 消息 比如100 Continue
    • 2xx成功
    • 3xx 重定向
    • 4xx客户端请求错误 比如常见的404 Not Found
    • 5xx和6xx服务器错误 500 Internal Server Error 600 Unparseable Response Headers

    发送http请求

    常见方式有两种:

    • Apple原生:
      1 NSURLConnection:用法简单,古老经典的一种方案.
      2 NSURLSession:iOS7以后推出的技术,功能NSURLConnection更加强大.
      3 CFNetWork:NSURL的底层,纯C语言,一般不用.
    • 第三方框架:
      AFNetWorking(OC)
      之前还有ASIHttp 12年停止更新,所以现在基本都用AFNetWorking。
      Alamofire(swift)

    HTTP请求方法

    在HTTP/1.1协议中,定义了8种发送http请求的方法:GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH

    增:PUT

    删:DELETE

    改:POST

    查:GET
    最常用的是GET和POST方法。因为GET和POST可以实现上述所有操作,除此以外HEAD请求使用频率也比较高;

    GET、POST区别
    • GET请求:用于从服务端获得数据,请求参数拼接在URL后面,所以安全性相对不是很高。
    • POST请求:给服务器数据,比如上传文件。请求参数在http的body中,所以相对更安全。

    TCP

    TCP(Transmission Control Protocol),传输控制协议,提供可靠的,面向连接的网络数据传递服务。比如上传文件需要TCP.

    TCP工作原理(三次握手)

    TCP的连接建立过程又称为TCP三次握手:

    • 首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;
    • 接收方主机在收到这个请求后向发送方主机回复一个同步/确认(SYN/ACK)应答;
    • 发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立.
      三次握手示意图:
    1455781199935543.png
    UDP(用户数据报协议)

    UDP 提供无连接的网络服务,不可靠的网络数据传输服务。经常与TCP对比。(宝宝又想起大学的考试了~~~~)比如可以用于语言通话。

    TCP,UDP都是传输层协议,是OSI(七层模型)中最重要,最关键的一层。

    相关文章

      网友评论

          本文标题:iOS的TCP/IP协议族整理

          本文链接:https://www.haomeiwen.com/subject/hfbclttx.html