ios网络通信及http简述

1、网络七层协议

网络协议分为7层,从下至上分别为。高层定义了应用程序的功能,底层只要面向通过网络的端到端的数据流

网络7层协议
物理层下层(比特流)1
数据链路层下层(数据帧)2
网络层下层(数据包)3
传输层高层(数据段)4
会话层高层(数据)5
表示层高层(数据)6
应用层高层(数据)7

物理层:物理层是OSI参考模型的最低层,它利用传输介质为数据链路层提供物理连接。它主要关心的是通过物理链路从一个节点向另一个节点传送比特流,物理链路可能是铜线、卫星、微波或其他的通讯媒介。它关心的问题有:多少伏电压代表1?多少伏电压代表0?时钟速率是多少?采用全双工还是半双工传输?总的来说物理层关心的是链路的机械、电气、功能和规程特性。主要有: 以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等

数据链路层:数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为 数据帧。只要协议有:Wi-Fi( IEEE 802.11) · WiMAX( IEEE 802.16) ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HSPA · HDLC · PPP · L2TP ·PPTP · ISDN·STP 等

网络层:网络层是为传输层提供服务的,传送的协议数据单元称为 数据包或分组。该层的主要作用是解决如何使数据包通过各结点传送的问题,即通过 路径选择算法( 路由)将数据包送到目的地。另外,为避免 通信子网中出现过多的数据包而造成 网络阻塞,需要对流入的数据包数量进行控制( 拥塞控制)。当数据包要跨越多个通信子网才能到达目的地时,还要解决网际互连的问题。IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP等

传输层:TCP · UDP · TLS · DCCP · SCTP · RSVP · OSPF 等

会话层:会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。会话层得名的原因是它很类似于两个实体间的会话概念。例如,一个交互的用户会话以登录到计算机开始,以注销结束。

表示层:表示层处理流经结点的 数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种 数据表示格式转换成 网络通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。

应用层:应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如 文件传输、收发电子邮件等。

表示层,会话层,应用层我统一理解为应用层,管理、控制传输(http、socket等协议)。

2、ios http

2、1 http理解

http(Hypertext Transfer protocol),超文本传输协议
(1)规定客户端和服务器之间的数据传输格式
(2)让客户端和服务器能有效的进行数据沟通
(3)http好处:简单快速,比较灵活,允许传输任意类型的数据,http使用非连续链接,限制每次链接只处理一个请求,响应结束后,马上断开链接,节省传输时间,减少消耗
(4)过程:
1、请求:客户端向服务器端请求数据
http协议规定,1个完整的由客户端发送给服务器的http请求中包括以下内容
请求行:包含了请求方式,请求资源路径,http协议版本
// GET/Sercer/resources/image.1.jpg HTTP/1.1
请求头:包含了客户端的环境描述,客户端请求的主机地址等信息
// Host:IP:Port
//User-Agent
//Accept type     (e.g. text/html)
// Accept-Language:zh-cn
//Accept-Encoding;gizp
请求体:客户端发给服务器的具体数据,比如文件数据图片数据等

2、响应:服务器返回客户端相应的数据
http协议规定,一个完整的http响应,应包括以下内容
状态行:包含了http协议版本,状态码,状态英文名称
响应头:包含了对服务器的描述,返回数据的描述
Server:~ //服务器的类型
Content-Type:text/html //返回数据类型
Content_Length:51222 //数据长度
Date:Mon,23Jun 2016 14:12:12 GMT //响应时间
(5)错误码
http常见的响应码
200   -- OK                            -- 请求成功
400   -- Bad Request             -- 客户端请求的语法错误,服务器无法解析
404   -- Not Found                 -- 服务器无法根据客户端的请求找到资源
500   -- Internal Server Error  --  服务器内部错误,无法完成请求

2.2 http请求方式

1、8种发送http请求的方法
一般来说,http一共有八种请求方式:分别为GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH其中最为常用的为GET,POST方法

2、iOS中发送HTTP请求的方案

在iOS中,常见的发送HTTP请求(GET和POST)的解决方案有

(1)苹果原生(自带)

NSURLConnection:用法简单,最古老最经典最直接的一种方案

NSURLSession:iOS 7新出的技术,功能比NSURLConnection更加强大

CFNetwork:NSURL*的底层,纯C语言

(2)第三方框架

ASIHttpRequest:外号“HTTP终结者”,功能极其强大,可惜早已停止更新

AFNetworking:简单易用,提供了基本够用的常用功能



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值