网络基本模型
- 客户端(Client):移动应用(iOS、android等应用)
- 服务器(Server):为客户端提供服务、提供数据、提供资源的特殊的计算机
- 请求(Request):客户端向服务器索取数据的一种行为
- 响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端
- 网络的核心是请求和响应.即请求怎么发,响应怎么回.
- 移动开发工程师,主要的精力都是放在客户端开发
服务器
按照软件开发阶段来分,服务器可以大致分为2种
远程服务器:外网服务器、正式服务器
- 使用阶段:应用上线后使用的服务器
- 使用人群:供全体用户使用
- 速度:取决于服务器的性能、用户的网速
本地服务器:内网服务器、测试服务器
- 使用阶段:应用处于开发、测试阶段使用的服务器
- 使用人群:仅供公司内部的开发人员、测试人员使用
- 速度:由于是局域网,所以速度飞快,有助于提高开发测试效率
- 在工作中,会有专门的后端人员开发服务器程序,不由得你选择
请求之URL
http://gov.163.com/special/jungai2016_vs/
- URL 的全称是 Uniform Resource Locator(统一资源定位符)
- 基本格式:协议头://主机地址/路径
- 协议头:不同的协议,表示不同的资源查找及传输方式
- 主机地址:存放资源主机的 IP 地址(域名)
- 路径:资源在主机中的具体位置
- 常见URL协议
- HTTP:// 超文本传输协议
- FTP:// 传输文件协议
- File:// 获取本地文件协议
- mailto:// 发邮件协议
- tel:// 打电话协议
- sms:// 发短信协议
- 主机地址
- 主机地址(IP地址)和域名是一一对应的.www.baidu.com 和 119.75.217.109,在浏览器中都可以获取到百度首页数据.
- 通过www.baidu.com是如何找到百度的服务器地址的?
DNS服务器会将域名解析成IP地址. - 域名比IP地址更方便使用者记忆和使用.效果是一样的.
HTTP协议
- HTTP协议 的全称是 Hypertext Transfer Protocol,超文本传输协议
- 超文本 : 网络上的数据是多种多样的.除了文字,数字以外,还有视频,音频,图片…都是属于超文本.
- 传输 : 客户端和服务器之间的数据传递的过程.传递的都是二进制数据.
- 协议 : 规定客户端和服务器之间的数据传递格式.
HTTP协议特点
- 而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。
- HTTP版本
- HTTP 0.9 和 1.0 使用非持续链接
限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,立刻断开连接.
每建立一次链接,只能发送一次请求,得到一次响应.
注意 : 非持续链接不适合频繁的请求. - HTTP 1.1 使用持续连接
不必为每个web对象创建一个新的连接,一个连接可以传送多个对象
每建立一次链接,发送一次请求并得到响应之后,链接不会立即断开,链接会持续保持一段时间.在这个时间内客户端如果还有请求就不需要再与服务器建立链接.
注意 : 持续链接不是一直保持链接,这个链接只持续一定的时间.因为不能长时间占用服务器资源.
- HTTP 0.9 和 1.0 使用非持续链接
长连接和短连接 & 心跳包
短连接
- 非持续链接和持续链接都是短链接.
- 数据请求结束后,会断开连接
- 能够及时释放服务器资源
长连接
- 一旦连接建立之后,始终保持连接状态,除非断网或者主动退出登录.
- 后续只需发送和接收数据即可,数据响应更及时
- 长连接对服务器资源占用比较大
- 对交互响应要求快的应用,例如即时通讯,需要使用长连接
心跳包
- 是检测长连接的重要技术手段
- 可以由服务器发送: 定时向客户端发送小数据,根据回执判断客户端是否在线
- 也可以由客户端发送: 定时向服务器发送小数据,报告客户端当前在线