01 问题:为什么要学习网络编程?
1)网络编程是一种实时更新应用数据的常用手段
2)网络编程是开发优秀网络应用的前提和基础
02 网络基本概念
1)客户端(就是手机或者ipad等手持设备上面的APP)
2) 服务器(远程服务器-本地服务器)
3) 请求(客户端索要数据的方式)
4)响应(需要客户端解析数据)
5) 数据库(服务器的数据从哪里来)
01 URL
1) 如何找到服务器(通过一个唯一的URL)
2) URL介绍
a. 统一资源定位符
b. url格式(协议\主机地址\路径)
协议:不同的协议,代表着不同的资源查找方式、资源传输方式
主机地址:存放资源的主机(服务器)的IP地址(域名)
路径:资源在主机(服务器)中的具体位置
3) 请求协议
【file】访问的是本地计算机上的资源,格式是file://(不用加主机地址)
【ftp】访问的是共享主机的文件资源,格式是ftp://
【mailto】访问的是电子邮件地址,格式是mailto:
【http】超文本传输协议,访问的是远程的网络资源,格式是http://(网络请求中最常用的协议)
02 http协议
1) http协议简单介绍
a.超文本传输协议
b.规定客户端和服务器之间的数据传输格式
c.让客户端和服务器能有效地进行数据沟通
2) http协议优缺点
a.简单快速(协议简单,服务器端程序规模小,通信速度快)
b.灵活(允许传输各种数据)
c.非持续性连接(1.1之前版本是非持续的,即限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间)
3) 基本通信过程
a.请求:客户端向服务器索要数据
b.响应:服务器返回客户端相应的数据
03 GET和POST请求
1) http里面发送请求的方法
GET(常用)、POST(常用)、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
2) GET和POST请求的对比【区别在于参数如何传递】
GET
在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如 http://ww.test.com/login?username=123&pwd=234&type=JSON 由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
POST
发给服务器的参数全部放在请求体中
理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
3) 如何选择【除简单数据查询外,其它的一律使用POST请求】
a.如果要传递大量数据,比如文件上传,只能用POST请求
b.GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
c.如果仅仅是索取数据(数据查询),建议使用GET
d.如果是增加、修改、删除数据,建议使用POST
04 iOS中发送http请求的方案
1) 苹果原生
NSURLConnection 03年推出的古老技术
NSURLSession 13年推出iOS7之后,以取代NSURLConnection【重点】
CFNetwork 底层技术、C语言的
2) 第三方框架
ASIHttpRequest
AFNetworking 【重点】
MKNetworkKit
05 http请求通信过程
1)请求
【包括请求头+请求体·非必选】
2) 响应
【响应头+响应体】
3)通信过程
a.发送请求的时候把请求头和请求体(请求体是非必须的)包装成一个请求对象
b.服务器端对请求进行响应,在响应信息中包含响应头和响应体,响应信息是对服务器端的描述,具体的信息放在响应体中传递给客户端
4) 状态码
【200】:请求成功
【400】:客户端请求的语法错误,服务器无法解析
【404】:无法找到资源
【500】:服务器内部错误,无法完成请求
- Posted by *** singerYoung ***
- 联系作者 简书·singerYoung 新浪微博·小小羊run
- 原创文章,版权声明:自由转载-非商用-非衍生-保持署名
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。