关于基于HTTP协议的ios开发

1、什么是URL
 URL的全称是Uniform Resource Locator统一资源定位符
通过1URL,能找到互联网上唯一的1个资源
URL就是资源的地址、位置互联网上的每个资源都有一个唯一的URL
URL的基本格式=协议://主机地址/路径

http://202.108.22.5/img/bdlogo.gif

协议:不同的协议,代表着不同的资源查找方式、资源传输方式

主机地址:存放资源的主机的IP地址(域名)

路径:资源在主机中的具体位置


HTTP
超文本传输协议,访问的是远程的网络资源,格式是 http://
http 协议是在网络开发中最常用的协议

file
访问的是本地计算机上的资源,格式是 file:// (不用加主机地址)

mailto
访问的是电子邮件地址,格式是 mailto:

FTP
访问的是共享主机的文件资源,格式是 ftp://

不管是移动客户端还是 PC 端,访问远程的网络资源经常使用 HTTP 协议
访问百度主页: http://www.baidu.com
获得新浪的微博数据
获得大众点评的团购数据


2、HTTP 协议的作用
HTTP 的全称是 HypertextTransfer Protocol ,超文本传输协议
规定 客户端 服务器 之间的数据传输格式
客户端 服务器 能有效地进行数据沟通


简单快速
因为 HTTP 协议简单,所以 HTTP 服务器的程序规模小,因而通信速度很快

灵活
HTTP 允许传输任意类型的数据

HTTP 0.9 1.0 使用非持续连接
限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间


HTTP的基本通信过程
要想使用 HTTP 协议向服务器索取数据,得先了解 HTTP 通信 过程

完整的 http 通信可以分为 2 大步骤
请求 客户端 服务器 索要数据
响应 服务器 返回 客户端 相应的数据

3、
iOS 中,常见的发送 HTTP 请求的方案有
苹果原生(自带)
NSURLConnection :用法简单,最古老最经典最直接的一种方案
NSURLSession iOS 7 新出的技术,功能比 NSURLConnection 更加强大
CFNetwork NSURL *的底层,纯 C 语言

第三方框架
ASIHttpRequest :外号“ HTTP 终结者”,功能极其强大,可惜早已停止更新
AFNetworking :简单易用,提供了基本够用的常用功能,维护和使用者多
MKNetworkKit :简单易用,产自三哥的故乡印度,维护和使用者少

建议
为了提高开发效率,企业开发用的基本是第三方框架



HTTP / 1.1 协议中,定义了 8 种发送 http 请求的方法
GET POST OPTIONS HEAD PUT DELETE TRACE CONNECT PATCH
根据 HTTP 协议的设计初衷,不同的方法对资源有不同的操作方式
PUT :增
DELETE :删
POST :改
GET :查
最常用的是 GET POST (实际上 GET POST 都能办到增删改查)

要想使用 GET POST 请求跟服务器进行交互,得先了解一个概念
参数
就是传递给服务器的具体数据,比如登录时的帐号、密码

3、GET POST 的主要区别表现在数据传递上
GET
在请求 URL 后面以 ? 的形式跟上发给服务器的参数,多个参数之间用 & 隔开,比如

http://ww.test.com/login?username=123&pwd=234&type=JSON

由于浏览器和服务器对 URL 长度有限制,因此在 URL 后面附带的参数是有限制的,通常不能超过 1KB
POST
发给服务器的参数全部放在 请求体
理论上, POST 传递的数据量没有限制(具体还得看服务器的处理能力)


HTTP 协议规定 :1 个完整的由 客户端 发给 服务器 HTTP 请求中包含以下内容
请求行 :包含了 请求方法 请求资源路径 HTTP 协议版本

GET /MJServer/resources/images/1.jpg HTTP/1.1

请求头 :包含了 对客户端的环境描述 客户端请求的主机地址 等信息

Host: 192.168.1.105:8080   //客户端想访问的服务器主机地址

User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X 10.9) Firefox/30.0

// 客户端的类型,客户端的软件环境

Accept: text/html,*/*   //客户端所能接收的数据类型

Accept-Language: zh-cn  //客户端的语言环境

Accept-Encoding: gzip  //客户端支持的数据压缩格式

请求体 客户端 发给 服务器 的具体数据,比如文件数据









1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值