iOS的TCP/IP协议族整理

写在前面:最近整理东西有点上瘾呢,难道这就是创作的快感吗?(哈哈哈哈哈)网络协议,在大学专门开了一门课,我们的叫《网络协议分析》,宝宝记忆好好哦~~~老师上课全英文课件 ~~
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连接成功建立.
    三次握手示意图:
iOS的TCP/IP协议族整理_第1张图片
1455781199935543.png
UDP(用户数据报协议)

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

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

你可能感兴趣的:(iOS的TCP/IP协议族整理)