APP开发必须懂的网络常识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不忘初心,方得始终。最近很多客户都在咨询APP定制开发,但对于一些基本的网络常识缺少认识,其实APP开发是一件很严谨的事情,不管是需求分析还是场景演示,对开发环境和开发人员的要求都比较高,了解基本的网络常识对于开发方案的理解会更深入透彻,有助于产品定位和服务品质的提升,同时,对网络公司有一个基本的判断准则,避免陷入低价所带来的恶性产品循环和不必要的成本开支,也避免后期运营中出现的初期愿景和现实产品的分离。
1、网络常用概念
网络是应用的灵魂,是所有应用的数据来源.离开了网络,我们的应用就是一潭死水,网络是数据交互的媒介,我们通过网络得到服务器上的数据,也是通过网络给服务器传递数据.也就是说,网络的实质就是是交互数据,而数据交互的媒介就是在网络中传输二进制数据流(包括html/图片/视频数据)。
互联网开发的常用概念:
客户端(Client):移动设备(手机/iPad等手持设备),客户端一般就是前端/前台等等.iOS,android开发都是前端开发.
服务器(Server):为客户端提供服务(比如数据/资源等)的机器---本质也是一台计算机(+服务器软件),服务器开发就是后端/后台开发.java/php/.net等.
请求(Request):客户端向服务器索取数据.
响应(Response):服务器对客户端请求做出的反应,一般就是返回数据给客户端. 服务器:按开发阶段来分,分为两种:
远程服务器: 外网服务器.应用上线之后供全体用户使用的服务器.速度取决于用户的网速和服务器的性能.
本地服务器: 内网服务器,测试服务器.开发测试阶段使用的服务器.供内部开发测试人员使用.速度飞快.
2.什么是IP地址
静态IP地址:固定不变的IP地址,需要用户自己手动设置.
动态IP地址:打开计算机后,自动生成的IP地址,不用人为设置。动态的IP 地址是通过DHCP协议实现自动获取的。
子网掩码:与IP地址配合使用判断两台计算机是否位于同一个子网络.
DNS服务器:可以将域名(网址)转换成IP地址.
DHCP协议:每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做“DHCP服务器”.当新的计算机加入网络,必须向“DHCP服务器”发
送一个“DHCP请求”数据包,申请IP地址和相关的网络参数.然后DHCP协议会赋予本机一些参数,如动态IP地址,子网掩码,网关,DNS服务器等.
以太网标头:设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址. IP标头:设置发出方(本机)的IP地址和接收方(DHCP服务器)的IP地址
UDP标头:设置发出方(本机)的端口和接收方(DHCP服务器)的端口. 这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口.
所以电脑想要上网,都需要确定这四个参数:本机IP地址, 子网掩码, 网关的IP地址, DNS的IP地址。
3.HTTP请求
通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正常、顺利地进行交流。从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。
3.1. URL(Uniform Resource Locator):
统一资源定位符.URL就是资源的地址,位置.通过一个URL能够找到互联网上唯一的一个资源.
URL的基本格式: 协议://主机地址/路径
协议:不同的协议代表不同的资源查找方式,资源传输方式.
URL中的常见协议:
<1>HTTP:超文本传输协议,在网络开发中最常用的协议.访问的是远程的网络资源.格式:http://...
<2>IP协议:
TCP数据包嵌入IP数据包.IP数据包标头需要设置双方的IP地址.发送方(本机)是:192.168.2.6 ,接收方(百度)是:119.75.218.70
IP数据包的标头长度为20字节.加上嵌入的TCP数据包,现在总长度是5000字节
<3>file:访问的时本地计算机上的资源.格式:file://(不要再加主机地址了)
<4>FTP:访问的是共享主机的文件资源.格式:ftp://
<5>TCP协议:
TCP数据包标头需要设置端口,接收方(Baidu)的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的1024~65535之间的整数.
TCP数据包的标头长度是20字节.加上嵌入的HTTP数据包,现在总长度是4980字节.
<6>以太网协议
IP数据包嵌入以太网数据包的数据部分.以太网数据包的标头需要设置双方的MAC地址.发送方为本机的网卡MAC地址,接收方为网关192.168.2.1的MAC地址
(通过ARP协议得到), 以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节.因此,IP数据包必须分割成四个包,因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500 ,1500, 1500,560 字节.
<7>mailto:访问的是电子邮件地址.格式:mailto:
主机地址:存放资源的主机IP地址(域名).
路径:资源在主机中得具体位置.
3.2. HTTP请求的完整过程:
<1> 请求: 客户端发出请求.向服务器索要数据(操作数据).
<2> 响应: 服务器对客户端的请求做出响应.返回客户端所需要的数据.
3.3. 包装一个HTTP请求
用NSURLRequest 来包装一个HTTP请求.可以指定缓存策略和超时时间,缓存策略的选择:NSURLRequestCachePolicy
NSURLRequestUseProtocolCachePolicy = 0, // 默认的缓存策略,使用协议定义. NSURLRequestReloadIgnoringLocalCacheData = 1, // 忽略本地缓存,直接从原始服务器地址下载. NSURLRequestReturnCacheDataElseLoad = 2, // 只有在缓存中不存在数据时,才从原始地址下