sqlite泛泛谈iOS网络编程之一入门

电脑网络,基本上可以抽象是端的通信。实际于简报中会用到不同的装备,不同的硬件中,为了能协调之导信息,那么建立平等模仿规范就是十分必要了。先来打听有基本概念

摸底网络中传的还是二进制数据流.  2.打探网络编程概念.

    认识网络:

        // 网络概念

     <1> 经常看看的: 网卡/网线/IP地址/子网掩码/路由地址/DNS服务器地址 作用?

    // <2> 容易忽略的:MAC地址/数据/数据包

    // <3> 网络编程的定义:客户端/服务器/请求/响应/数据流

    

    // 网络是数交互的介绍人,我们通过网取服务器上之多少,也是由此网络为服务器传递数据.

    // 也就是说,网络的精神,是互相数据.

    

    0.运动网络以 = 良好的UI + 良好的用户体验 + 实时更新的数码

    

    1.网络是用之灵魂,是兼备应用的多寡来源.离开了网络,我们的运即是平等潭死水.

    

    网络编程概念:

    

    <1>客户端(Client):移动装备(手机/iPad等手执设备).

    客户端一般就是前者/前台等等.iOS,android开发还是前端开发.

    

    <2>服务器(Server):为客户端提供劳动(比如数据/资源相当)的机—本质也是一致台微机(+服务器软件).

    服务器出就是后端/后台开发.java/php/.net等.

    

    <3>请求(Request):客户端向服务器索取数据.

    

    <4>响应(Response):服务器对客户端请求做出的反射,一般就是是返回数据被客户端.

    

    服务器:按开发阶段来划分,分为两种植:

    

    远程服务器: 外网服务器.应用上线之后供全体用户用的服务器.速度在用户的网速和服务器的性能.

    

    本地服务器: 内网服务器,测试服务器.开发测试阶段使用的劳务器.供内部支出测试人员使用.速度出乎意料快.

    

    2.网络被传的都是二进制数据流.
html/图片/视频数据…

    

    二前进制数据流是如何被分组并传的吧?

接通下去了解一下概念

socket(插座/套接字)
:通信模型 不属于七重叠协议.在 unix 系统中 规定: “主机” + “端口” 就称 socket.

具有的大网开支,基本还是冲socket来开的.最简便/最广泛的 socket  —>
TCP/IP

“七层协议”

网络是分段的.

sqlite 1

物理层:

           两高计算机如何树立通信?

——>1.将微机连接起来;2.顶住传递信息。电信号(高(1)低(0)传输0和1)

概念很多业内:设备传输速率/接口规范

数量链路层

         
给多少分组(将0和1分组),规定数量的解读道,规定同样组数据就是千篇一律帧,——数据包。

以太网协议:(局域网协议,)规定数量的分组办法,(现在几大部分底分组)

网路层:主要建立“主机”和”到主机”之间的通信。

怎找到网中绝无仅有的一致华电脑?————>

网络层引入一拟地址机制,网络地址/网址/IP地址。

子网掩码分为两个部分:网络有,主机部分

子网掩码和IP地址配合以,确定当前计算机所于的子网络。

路由:信息若在不同的子网络传递,就叫做路由。

路由器:寻找相同修最佳途径,在点滴单不等的子网络之间传递信息。

如何确定网络被传的音信是殡葬给电脑中之一个应用程序?

网卡:每一个使用网络应用程序,信息都设经过网卡来进展传输。

污染输层:主要建立端口到端口之间的通信,应用程序之间的通信

于各个一个运用网卡的应用程序分配了一个号,一般叫“端口”号。端口号:0…~65535
  0~1024系保留端口号 。80 http 

会话层:

起平等法自动的收发信息机制(建立以应用程序和应用程序之间)

表示层:解决不同系统内通信的语法问题

应用层:规定了我们数的传格式

如http:协议 file; 邮件协议:ftp协议相当于

确定了数额的格式:

数据包:

星星单部分:

标头部分:接收方和殡葬方 的MAc地址 :18字节

多少有含传输的信息:1500只字节

网络层;IP数据包   IP数据包的局部恰好能放下一个,传输层数据包

表头:接收方和发送方的接地址,数据有:数据

数包嵌套:上层数据包嵌套在下层数据包的多少有,变动上层数据包,不见面影响下层数据包的布局

纱在拍卖数据时,会先处理IP数据包,再处理为太网数据包。

传输层:

端口号: 0 ~ 65535. 0~1024 封存的端口号. 80

为各级一个以网卡的应用程序分配了一个编号.这个编号,一般称之为
“端口” 号

于传信息之上,附件端口号.

传输层:主要建立”端口”
到 “端口”之间的通信.应用程序之间的通信.

TCP:安全协议,三坏握手协议 ,传输效率不强

UDP:报文头协议,只负责用信息传送出去,不管接收方是否收取到消息。

应用层:

应用层数据包,就是咱传递的纱数据.将应用层数据包封装于传输层的数据部分.

————————————————————————————————————————————————————————————————————————————

小结起来.:1明了网络 2.明亮七叠协商/五层模型 3.理解Socket.

{

    应用层: 规定”应用程序”的数量格式.
http / ftp /email 等.  
//纸条上写的是何?

    

    传输层: 建立”端口”到”端口”之间的通信.
UDP/TCP 协议.”端口”. //我们帮忙您传纸条

    

    网络层: 确定各级一样贵电脑的职,建立”主机”到”主机”之间的通信.IPv4商讨,”IP地址”.  
// 女孩的职务

    

    数据链路层: 确定1和0的分组方式.以太网协议:一组电信号就是一个多少包.”MAC地址”/网卡/广播.
//
深情告白

    

    物理层: 将电脑连续入网络,传输电信号1和0.      // 一张白纸

    

    互联网分层结构的补:

    

        上层的更动完全不影响下层之结构.

    

    Socket : “主机 + 端口”就是”Socket(套接字/插座)”  —–
TCP/IP协议

}

—————————————————————————————————————————————————————————————————————————————

最主要:1.接头数据包.
2.接头网络通信实质.

{

    网络通信的根基: 知道对方的MAC地址和IP地址.

    

    网络通信的精神: 互相交换数据包.

    

    数据包:

        每一个数量包都包含 “标头”和”数据”两个部分.”标头”包含本数据包的局部说明.”数据”则是遵照数据包的内容.

    

    以太网数据包: 最基础之多少包.标头部分含有了通信双方的MAC地址,数据类型等.
‘标头’长度:18字节,’数据’部分长度:46~1500字节.

    

    IP数据包: 标头部分含通信双方的IP地址,协议版本,长度等信息. 
‘标头’长度:20~60字节,”数据包”总长度最要命啊65535许节.

    

    TCP/UDP数据包:标头部分含双方的发出端口与接收端口.  UDP数据包:’标头’长度:8单字节,”数据包”总长度最要命呢65535字节,正好放上一个IP数据包.  TCP数据包:理论及从来不长限制,但是,为了保险网络传输效率,通常不会见过IP数据长度,确保单个包不见面为分割.

    

    应用程序数据包: 标头部分规定应用程序的多少格式.数据有传输具体的多寡内容.

sqlite 2

    

    嵌套:

        数据包层层嵌套,上同样交汇数包嵌套在生一致重叠数据包的数据部分.最后都由以太网数据包来开展多少传递.

    

    分包/拆包:

        一般传递的多寡还较大,会将数据包分割成多单部分来传递.

    

    拼包:

        将吸收至数码包仍序号拼接起来,组成总体的数码包.

   

/*———————————-  网络基础: 4.IP地址   
———————————-*/

重点:了解IP地址.

{

    静态IP地址:

        固定不换的IP地址,需要用户自己手动设置.

    

    动态IP地址:

        通过DHCP协议自动生成的IP地址.

    

    DHCP协议:

        通过DHCP协议,用户获得本机的动态IP地址,子网掩码,网关,DNS服务器等.

    

    子网掩码:

        与IP地址配合下判断两玉微机是否位于同一个子网络.

    

    DNS服务器:

        可以拿域名(网址)转换成为IP地址.

    

}

/*———————————-  网络基础: 4.一个HTTP请求
——————————–*/

重大:了解一个HTTP请求的完整了程.

{

    对前面所学内容的一个系的演示.

    

    1.
URL(Uniform Resource Locator):

        统一资源一定符.URL就是资源的地点,位置.通过一个URL能够找到互联网及唯一的一个资源.

    

    URL的中心格式:  共商://主机地址/路径

    

    协议:不同之协商表示不同的资源查找方法,资源传输方式.

    {

        URL中的泛协议:

        

        <1>HTTP:超文本传输协议,在网络支付中最常用的协议.访问的凡长途的网络资源.格式:http://…

        

        <2>file:访问的常当地电脑上的资源.格式:file://(不要再次加主机地址了)

        

        <3>FTP:访问的凡共享主机的文件资源.格式:ftp://

        

        <4>mailto:访问的凡电子邮件地址.格式:mailto:

    }

    

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

    

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

    

    2.
HTTP请的共同体过程:

    

    <1> 请求:
客户端发出请求.向服务器需要数据(操作数据).

    

    <2> 响应:
服务器对客户端的求做出响应.返回客户端所用之数据.

    

    3.
装进一个HTTP请求

    

    用
NSURLRequest 来包装一个HTTP请求.可以指定缓存策略与过时间.

    

    1> 缓存策略的挑选:NSURLRequestCachePolicy

    {

        NSURLRequestUseProtocolCachePolicy =
0,

        // 默认的休息存策略,使用协议定义.

        

        NSURLRequestReloadIgnoringLocalCacheData =
1,

        // 忽略本地缓存,直接从原本服务器地址下载.

        

        NSURLRequestReturnCacheDataElseLoad =
2,

        // 只有以缓存中无设有数量经常,才起老地址下载

        

        NSURLRequestReturnCacheDataDontLoad =
3,

        // 只下缓存数据,如果不有缓存,则呼吁失败. 用于没有网络连接的离线模式

        

       
NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4,

        // 忽略远程和本地的数据缓存,直接由旧地址下载

        

        NSURLRequestReloadIgnoringCacheData =
NSURLRequestReloadIgnoringLocalCacheData = 1,

        // 忽略缓存,直接从原服务器地址下载.

        

        NSURLRequestReloadRevalidatingCacheData =
5,

        // 验证本地数据和长距离数据是否同样,如果差则生充斥远程数据,否则用当地数据.

        

    }

    

    // 网络数据缓存

    网络缓存数据,保存于SQLite的数据库中(NSHomeDirectory()),

    

    //查看缓存的数目命令行:

    cd 文件目录 (打开文件目录)

    ls 查看时文件下目录

    sqlite3 Cache.db 打开数据库

    .tables 查看数据库被之表单

    select * from cfurl_cache_response; 查看服务器响应缓存

    select * from cfurl_cache_receiver_data;
查看服务器返回的数缓存

    

    2> 默认的超时时间: timeoutInterval = 60

    

    4.
发送请求

    

    用
NSURLConnection 发送请求.

    

    同步方法:

    + (NSData *)sendSynchronousRequest:(NSURLRequest
*)request returningResponse:(NSURLResponse **)response error:(NSError
**)error;

    

    异步方法:

    + (void)sendAsynchronousRequest:(NSURLRequest*) request
queue:(NSOperationQueue*) queue

    completionHandler:(void (^)(NSURLResponse* response,
NSData* data, NSError* connectionError)) handler

    

    “iPhone
AppleWebKit” 制定客户端类型

}

客户端:手机/ipad/PC 移动互联网. 前端开发:IOS 安卓 浏览器/网页

后端开发:

服务器:就是平大算机.

客户端都是由此服务器获得数量的.

线上服务器:app上线之后,访问的劳务器.

测试服务器:app开发阶段使用的劳动器.

数据库:服务器遭到之数还来源于于数库.

恳请:客户端向服务器所假设数的经过 —
发送一个大网要

响应:服务器收到至客户端的请后,返回给客户端所欲的数据.

做客本机的地点:

127.0.0.1 本机的Ip地址.

论机域名:localhost

IP地址:网路管理分配内网IP

基本的概念来矣,接下了即看下在实际上付出被

MAc系统,自带的Apache2,轻便易用,可以生有益于于自己之PC上搭服务器

配备服务器

服务器配置步骤:

1> 打开服务器配置目录

cd /etc/apache2/

2> 查看当前目录下内容

ls

3> 修改服务器根路径

{

    sudo vim httpd.conf  //进入服务器配置文件

    /DocumentRoot 回车 //查找服务器默认根路径

    将默认根路径 DocumentRoot “/Library/WebServer/Documents”
注释掉;

    在诠释掉的根路径下一行多新的清路径

    DocumentRoot “/Users/自己之用户名/Sites”

    将
<Directory “/Library/WebServer/Documents”>
注释掉;

    增加新的 <Directory “/Users/l自己之用户名/Sites”>

}

4> 保存退出

:wq 回车

“注意”:如果感觉到修改错误了,想还上修改,就召开不保留退出的操作

匪保留退出

:q! 回车

起先服务器

sudo apachectl -k start 或者 sudo apachectl start

闭馆服务器:

sudo apachectl -k stop 或者 sudo apachectl stop

还起动服务器

sudo apachectl -k restart 或者 $sudo apachectl restart

从那之后服务器就着力得以动用了,

开辟浏输入:lcalhost(127.0.0.1)

sqlite 3

设得以视Index
of
,服务器就架设成功了(bd.html,笔者放的测试文件)

呢就是私房PC可以作为服务器了。

未完待续…

网站地图xml地图