【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)
Web Service技术是一种通过Web协议提供服务,保证不同平台的应用服务可以互操作,为客户端程序提供不同的服务。
目前3种主流的Web Service实现方案用:REST,SOAP和XML-RPC.XML-RPC和SOAP都是比较复杂的技术,XML-PRC是SOAP的前身。
一,REST Web Service.
REST被翻译为“表征状态转移”,听起来很抽象,“表征”是客户端看到的页面,页面的跳转就是状态的转移,客户端通过请求URL获得要显示的页面。REST通常是基于HTTP,URI和XML以及HTML等这些现有的协议和标准。
1,HTTP和HTTPS协议。
Web Servie应用层采用的是HTTP和HTTPS等传输协议。
1)HTTP协议。
HTTP是超文本传输协议。是一个属于应用层的面向对象协议,由于其简捷,快速的方式,适用于分布式超文本信息的传输。它于1990年提出,经过几年的使用与发展,不断地完善和扩展。HTTP协议支持客户端服务器网络结构。是无连接协议,即将每一次请求时建立连接,服务器处理完客户端的请求后,就答给客户端然后断开连接,不会一直占用网络资源。
GET方法是向指定的资源发出请求,发送的信息显示 在URL后面,使用GET方法应改只用在读数据,例如静态图片等数据。GET方法像是使用明信片给别人写信,“信内容”写在外面,接触到的人都可以看到,因此不安全。
POST方法是向指定的资源提交数据,请求服务器进行处理。例如:提交表但或者上伟文件等。数据被包含在请求体中。POST方法有点像是把“信内容”装入到信封中给别人写信,接触到的人都看不到,因此是安全的。
2)HTTPS协议
HTTPS是安全超文本传输协议。是超文本传输协议和SSL的组合,提供加密通信及对网络服务器身份的鉴定。
2,同步GET方法请求编程
3,异步GET方法请求编程。
4,POST方法请求编程。
5,实例:REST Web Servie实现的MyNotes应用。
采用的HTTP方法请求方法,建议使用POST方法,这是因为GET请求静态资源,数据传输过程也不安全,而POST主要请求动态资源,这些方法调用都需要传递很多参数。
在viewWillAppear:方法中实现查询调用会增加网络请求次数,对于大量数据返回情况下,画面出现会比较慢。
二,SOAP Web Service
1,WSDL概念。
WSDL是为描述Web Service发布的XML格式。
WDSL是一种XML Schema文档,作用是定义XML文档结构,类似DTD.如果把XML文档理解成数据库,那么XML Schema就是定义数据库结构的create,drop和alter语句。
2,SOAP协议。
3,实例:SOAP Web Service实现My Notes应用。
常用的有:test/plain代表纯文本,text/html代表HTML文档,application/pdf代表PDF文档,application/msword是Microsoft Word文件,而SOAP中的有点特殊application/soap+xml;charset=utf-8代表XML的SOAP格式文档,后面的charset=uft-8是指文档的字符集。
三,ASIHTTPRequest框架的使用。
ASIHTTPRequest框架的优点:
1,支持下载数据放在内存或本地文件。
2,容易访问请求和应答HTTP header.
3,支持Cookie;
4,支持GZIP请求或应答;
5,支持缓存。
6,支持同步或异步请求。
7,支持HTTPS。
参考资料:《iOS网络编程与云端应用-最佳实践》
【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)的更多相关文章
- 【读书笔记】iOS网络-Web Service协议与风格
协议指的是在与其它系统交换结构化信息时所要遵循的一套格式,过程与规则.此外,协议定义了在传输过程中所要使用的数据格式.这样,接收系统就能正确地解释结构化信息并做出正应的回应. 1,简单对象访问协议. ...
- 基于Web Service的客户端框架搭建四:终结篇
前言 这是这个系列的终结篇,前面3个博客介绍了一下内容: 1.使用Http Post方式调用Web Service 2.客户端框架之数据转换层 3.客户端框架之代理层 框架结构 框架是基于C#的,在V ...
- 基于Web Service的客户端框架搭建一:C#使用Http Post方式传递Json数据字符串调用Web Service
引言 前段时间一直在做一个ERP系统,随着系统功能的完善,客户端(CS模式)变得越来越臃肿.现在想将业务逻辑层以下部分和界面层分离,使用Web Service来做.由于C#中通过直接添加引用的方来调用 ...
- 基于Web Service的客户端框架搭建二:数据转换层(FCL)
引言 要使用WebService来分离客户端与服务端,必定要使用约定好两者之间的数据契约.Json数据以其完全独立于语言的优势,成为开发者的首选.C# JavaScriptSerializer为Jso ...
- 基于Web Service的客户端框架搭建三:代理层(Proxy)
前言 代理层的主要工作是调用Web Service,将在FCL层序列化好的Json数据字符串Post到Web Service,然后获得Reponse,再从响应流中读取到调用结果Json字符串,在Dis ...
- SOAP: java+xfire(web service) + php客户端
作者: 吴俊杰 web service这项技术暂不说它有多落伍,但是项目中用到了,没法逃避! xml和json各有各的好处,但是JSON无疑是当今数据交互的主流了.客户soap服务器端用的是 j ...
- PHP笔记-PHP中Web Service.
这几天工作需要.net站点免登陆访问PHP的Wiki站点. PHP不熟,感觉很苦逼.任务下来了,必须搞定.准备用SSO,太麻烦了,要改写别人很多代码,这个是第三方CMS,封装的很厉害,不好改.最后我的 ...
- 【读书笔记】HTML5 Web存储
PS:这里讲web存储,主要是在客户端存储的一些技术:cookie,localstorage,sessionstorage,WebSQL. Cookie Cookie是HTML4中在客户端 ...
- Node.js高级编程读书笔记 - 4 构建Web应用程序
Outline 5 构建Web应用程序 5.1 构建和使用HTTP中间件 5.2 用Express.js创建Web应用程序 5.3 使用Socket.IO创建通用的实时Web应用程序 5 构建Web应 ...
随机推荐
- 大话ASP.NET开发(第一章 html5+css3+解耦问题的探讨)
一.拉近我们的距离 我想,很多人会问,如今IE6还占据颇多份额的中国,html5.css3是否还很遥远?我会很直接告诉他们:其实就在你的眼前.我们来看两个图: ...
- 高逼格前端开发工具-FIDDLER
1.Fiddler相对其他调试工具的优势 HttpWatch 和 Firebug绝大多数前端开发人员都比较熟悉,但是HttpWatch虽然可以抓到每个 HTTP 请求的全部数据,但无法修改返回的数据: ...
- SQL --分组【Group By】
Group By:对数据进行分组,分组之后的数据就是“分组信息”,和原来表的信息,就没有联系了, 分组之后,可以取到分组数据,就是根据什么字段分组,就能取到字段的名字了.还能使用聚合函数. Group ...
- Auto Mapper04(MVC中的配置)
学习如何在MVC项目中配置AutoMapper. 一:首先在MVC项目中引用AutoMapper的DLL文件,接着创建一个接口,这里面我们需要定义两个方法,接口里面的方法只能定义不能实现,也没有什么修 ...
- Razor练习1
学习ASP.NET MVC, Razor语法必须掌握,这篇学习: Razor code blocks are enclosed in @{ ... }Inline expressions (varia ...
- C#异步调用的方法
最经公司工作需要调用一个外部的webservice,同时要将传出的数据进行保存,以自己以前的习惯,就打算逐步操作,失败啊,完全没考虑过用户体验效果,在同事指点下,意识到使用异步调用的好处,随便将自己找 ...
- C#项目中常用到的设计模式
1. 引言 一个项目的通常都是从Demo开始,不断为项目添加新的功能以及重构,也许刚开始的时候代码显得非常凌乱,毫无设计可言.但是随着项目的迭代,往往需要将很多相同功能的代码抽取出来,这也是设计模式的 ...
- Lesson: The "Hello World!" Application
Lesson: The "Hello World!" Application The sections listed below provide detailed instruct ...
- 利用Yii框架中的collections体验PHP类型化编程
注:20150514 看过 惠新宸 关于PHP7的PPT后,看到了这一特性将被支持. Scalar Type Declarations function foo(int num) function ...
- Scalaz(52)- scalaz-stream: 并行运算-parallel processing concurrently by merging
如果scalaz-stream真的是一个实用的数据流编程工具库的话,那它应该能处理同时从多个数据源获取数据以及把数据同时送到多个终点(Sink),最重要的是它应该可以实现高度灵活的多线程运算.但是:我 ...