当前位置:编程学习 > wap >>

WAP协议初级读本

答案:WAP(无线应用协议:Wireless Application Protocol)协议就是移动Internet应用程序的标准通信协议。它的主要设计目标是为移动设备访问Internet或者内联网提供一种经过优化的开放标准。
 

诞生之初,WAP被吹捧为一种易做图性的通信应用技术,整个移动计算世界都似乎都要因其改头换面。然而, WAP和采用WAP协议的各类服务却因为移动设备、移动网络本身的局限性而并没有起到人们所预想的作用,移动网络和设备的主要局限在于:

  • 显示屏幕窄小
  • 设备内存容量有限
  • CPU计算能力不足
  • 可用带宽太小
  • 连接不可靠
  • 延迟过大

不过,在WAP的新版本——WAP 2.0出现之后情况就有所变化了。下面我对WAP及其利用WML显示内容的技术做简单阐述。另外我还会说明一下WAP 2.0在1.x版本基础上到底有了哪些技术上的提高和改进,最后会阐述些继续使用目前的1.x版本的理由。

WAP工作原理

在通过桌面计算机操作系统上的浏览器访问网站时,客户程序会对数据提出请求,而服务器则负责把这些数据以HTML的格式通过IP网络传送给客户机。Web浏览器再把这些HTML数据转换为用户可读的文本和图象。

在你的移动设备上情况就有点不同了, WAP通过一种所谓的WAP浏览器取代了Web浏览器的位置,设备可以通过它向网站请求数据。通过桌面PC浏览器和WAP 1.x浏览器访问数据的主要差别就在于, WAP浏览器必需用到WAP网关这种通信实体。这种所谓的WAP网关在功能上等同于移动网络和和Internet网络之间的中介。WAP网关位于WAP浏览器和Web服务器之间,它对内容进行必要的二进制编码,同时还能对WML和HTML代码进行相互转换。

采用WAP的理由

上面提到过移动通信存在相当程度的局限性,不过采用WAP实现移动Web浏览还是有充足理由的:

  • WAP有其自身的安全模式,其在线工作原理类似Web安全性。哈系算法、数字证书和公钥密码技术等为WAP真实交易提供了关键的安全保护。
  • WAP开发相当简单。WML和WMLScript几乎为移动Internet应用程序提供了它们所必要的一切准备。WML或WMLScript学起来也不难;大多数程序员上手非常快。
  • WAP已经得到了广泛接受。无线通信市场的主流厂商(比如诺基亚、摩托罗拉和爱立信等公司)都非常积极地参与了WAP标准的制定过程。
  • WAP是一种独立的标准。这就是说,即便转到GPRS网络也丝毫不会影响网络浏览。而更好的数据传输速度只会令浏览体验更完美更方便。
WAP 和 WML

WML(无线标记语言:Wireless Markup Language)是就WAP体系结构的有机组成部分(请参看图A)。WML是一种基于XML的标记语言,其开发和维护工作由WAP论坛负责。

图A

WAP体系结构

WML实际上就是一种坚持预定义规则、具有良好格式的XML语言。它采用显示标签以移动设备所适合的格式表示数据。在理想的情况下, Web服务器可以提供只能由WAP浏览器显示的WML内容。某些WAP网关则甚至可以把HTML转换为WML。可是,你最好不要指望这种特性,因为它其实并没有提供真正意义上准确的WAP显示内容。

WAP 2.0全新登场

2.0版本的WAP吸纳了更多的Internet标准。由W3C定义的XHTML 基本版已经成为了WAP 2.0的基本。XHTML Basic就是XHTML 1.0的移动版本,WAP论坛以它为基础开发出了XHTML Mobile Profile。

WAP CSS则是层叠样式表CSS的移动版本,它只具备CSS同移动环境有关的一些特性。XHTML和CSS为开发人员提供了更强大的格式化能力。在采用XHTML和CSS的情况下,你甚至可以在具有不同内容表示功能的移动设备上显示同样的文档。此外,WAP 2.0还包含了WML 1.x扩展以保证标准的后向兼容性。

在WAP 2.0标准中,WAP网关不再成为WAP体系结构中的关键组成部分。此外,内容也不再必须采用二进制编码;XHTML继续采用文本格式。可是,由于许多人还要依靠那些必需WAP 1.0标准的移动设备,同时因为WAP/WSP协议栈仍用于传输用途,所以你还要支持WAP 1.0网关。

所以说,即便WAP 2.0提供了相当强大的功能,在一段时间之内,你却可能还得在1.x标准之内进行可靠而安全的开发工作。

上一个:使用 Web 标准生成 ASP.NET 2.0 Web 站点
下一个:简介WAP最新版本:WAP 2.0

更多图片编程知识:
更多wap疑问解答:
新人求助QPainter
为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
qt 4.7 sqlserver2000 存储过程调用
关于ANDROID4.0.1编译问题!
Android FrameBuffer读屏幕30秒后mmap失败
联通粗定位用java程序如何来请求和接受数据
为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
android与PC蓝牙通讯
指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
Android调试
android如何通过wifi连接无线打印机
运行程序,release目录下产生一个乱码文件夹
分享个某机构最新安卓资料,自己验证了
service启动不起来,掉不了service connection
求助:QT5.0 没有QPrinter吗
asp
php
Delphi
Matlab
JSP
Foxpro
JS
C/C++
C#/ASP.NET
VC++
JAVA
VB
汇编语言
html/css
CGI
XML/UML
wap
网站相关
网页素材
python
微信小程序
thinkphp
如果你遇到编程学习难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,