HTTP基本概念
0. 本节知识点:
- URL
- http协议
- GET和POST请求
- iOS中发送http请求的方案
- http请求通信过程
1. URL
- URL介绍
- a. 统一资源定位符
- b. url格式(协议\主机地址\路径)
- 协议:不同的协议,代表着不同的资源查找方式、资源传输方式
- 主机地址:存放资源的主机(服务器)的IP地址(域名)
- 路径:资源在主机(服务器)中的具体位置
- 请求协议
- 【file】访问的是本地计算机上的资源,格式是file://(不用加主机地址)
- 【ftp】访问的是共享主机的文件资源,格式是ftp://
- 【mailto】访问的是电子邮件地址,格式是mailto:
- 【http】超文本传输协议,访问的是远程的网络资源,格式是
http://(网络请求中最常用的协议)
2. http协议
- http协议简单介绍
- a.超文本传输协议
- b.规定客户端和服务器之间的数据传输格式
- c.让客户端和服务器能有效地进行数据沟通
- http协议优缺点
- a.简单快速(协议简单,服务器端程序规模小,通信速度快)
- b.灵活(允许传输各种数据)
- c.非持续性连接(1.1之前版本是非持续的,即限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间)
- 基本通信过程
- a.请求:客户端向服务器索要数据
- b.响应:服务器返回客户端相应的数据
3. GET和POST请求
- http里面发送请求的方法
- GET(常用)、POST(常用)、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH
- GET和POST请求的对比【区别在于参数如何传递】
- GET
- POST
- 发给服务器的参数全部放在请求体中
- 理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
- 如何选择【除简单数据查询外,其它的一律使用POST请求】
- a.如果要传递大量数据,比如文件上传,只能用POST请求
- b.GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
- c.如果仅仅是索取数据(数据查询),建议使用GET
- d.如果是增加、修改、删除数据,建议使用POST
4. iOS中发送http请求的方案
- 苹果原生
- NSURLConnection 03年推出的古老技术
- NSURLSession:【重点】13年推出iOS7之后, 以取代NSURLConnection
- CFNetwork: 底层技术、C语言的(前两种都是基于这个, 开发中基本用不上)
- 第三方框架
- ASIHttpRequest: 外号“HTTP终结者”,功能极其强大,可惜早已停止更新
- AFNetworking:【重点】简单易用,提供了基本够用的常用功能,维护和使用者多
- MKNetworkKit: 维护和使用者少, 功能强大, 但是上手较难
- 建议: 为了提高开发效率,企业开发用的基本是第三方框架
5. http请求通信过程
- 请求: 【包括请求头+请求体?非必选】
- 响应: 【响应头+响应体】
- 通信过程
- a.发送请求的时候把请求头和请求体(请求体是非必须的)包装成一个请求对象
- b.服务器端对请求进行响应,在响应信息中包含响应头和响应体,响应信息是对服务器端的描述,具体的信息放在响应体中传递给客户端
- 状态码
- 【200】:请求成功
- 【400】:客户端请求的语法错误,服务器无法解析
- 【404】:无法找到资源
- 【500】:服务器内部错误,无法完成请求