无线世界里的Apache

由 徐永久 发表于 2001年10月16日 20:43。

想知道无线上网背后的技术么?
内容:
. 介绍
. WAP!
. WML
. 配置 Apache
. 开发仿真

▲ 介绍
无线因特网理论上可以为任何人在任何地点服务。把信息通过无线世界发送到移动电话或PDA 和传统的因特网服务很相似但是却不是完全一样。因为两者在物理尺寸和通信速度以及其他各
方面都有很多种差别。因此人们为无线世界开发了新的协议。WAP 和 WML 是其中的脊梁骨。
把Apache 放入其中是很自然而且很合身的。

▲ WAP!
为Apache 配置无线传送数据的能力相对比较简单。有线因特网世界传送数据是用TCP/IP协议的。
这个协议帮助数据包通过网络上复杂的路径,为了维护系统上的通讯流量有时候需要经常改变路
径。无线通信设备的供应商,像Nokia 和 Motorola,意识到采用和有线网络不同原理的数据路由
系统系统十分必要。

这样就诞生了 WAP(无线应用协议Wireless Application Protocol)。因为无线空间比之有线空间与生
俱来的脆弱性,WAP 被设计成能安全地把数据“推”到各种不同的无线网络拓扑。理论上任何操作系
统都能支持WAP,但是,事实上需要WAP 功能的都只是一些体积小的,像移动电话和PDA 之类的
东西。

尽管WAP 作为一个协议能够推送当前的各种数据格式,像HTML,但是随着WAP设备的小型化,对
这些各种编码格式的文档的呈现也越有限制,因为开发这些格式时,人们的思维还处在桌面显示器时代。
这样,就需要一个WAP 伴侣,试之在无线设备的狭小空间内能很好地展示这些文档。

▲ WML
在圣经时代,如果有人在写关于在无线网络上传输内容的文章,他或许曾经说过:“就像无线产生
WAP,WAP 结果产生WML “。WML(无线标记语言Wireless Markup Language)对于那些曾经在
无数的Web 页面背后用HTML 工作过的人来说,激起的是同一根琴弦。实际上,WML 是XML 的一个
特别的实现,定义了一种适应小型设备的标记语法和结构。

HTML 和WML 在操作上稍有不同,HTML 的前提是目前无处不在的“页面”,而WML 的前提是“一手牌”。
实际上,HTML 文档代表一个简单的Web 页面,而WML 文档代表一手牌,可能有一张或更多张牌。
对这手牌的浏览主要是牌的交换,无论是按顺序还是按超链接。

请记住,在背后驱动WML 的是一种小型甚至是微型的屏幕,不能显示很多信息,有时候只能四五行字,这样
除了偶尔的几个小徽标外,就没有留给图像的空间了,许多文本是一样大小的,而且屏幕经常是单色的。
因此,在无线网络中真正的实力不是复制有线空间里的内容,而是面对小型的,热点的小片数据,像天气预报,
体育比赛比分或者旅游预订。

象HTML 一样,WML 文档建立时是一种文本文件。虽然我遣皇强猈ML 讲座,但是,还是先来看简单的
WML 的一手牌,来感受Apache 能发送给无线设备的数据类型。我们建立的这手牌包括两张牌:第一张是
欢迎,并且链接到第二张,第二张是一些虚假的WML 页面。

I can’t say much, since this screen is tiny.

Why don’t you visit my favorite WAP links.

These are some WAP sites I would love, if they existed.

Tiny cat pictures

The weather

One click jelly bean ordering

尽管和HTML 不一样,以上WML 的样式和HTML 还是十分相似的。如果我们曾经在实际的电话里
看到过以上的WML 页面,假设是通过一个正确配置的Apache 服务器,结果就可能是这样:
(图形)

▲ 配置 Apache
大多数情况下,Web 服务器不需要为发送WML 页面做太多的调整。对Apache 来说,只需要让他根据
文件名的后缀来认识文件的MIME 类型就可以了。Apache 会把MIME 类型发送给浏览器,假设浏览器
认识WML,它就知道怎么去处理WML 类型的文件了。

最新版本的Apache 能通过文件httpd.conf 来完全配置。通过文本编辑器,找到定义MIME 类型的那节:

#
# AddType allows you to tweak mime.types without actually editing it, or to
# make certain files to be certain types.
#
# For example, the PHP3 module (not part of the Apache distribution)
# will typically use:
#
#AddType application/x-httpd-php3 .phtml
#AddType application/x-httpd-php3-source .phps

AddType application/x-tar .tgz

以下可以为Apache 增添WML 类型了,我们简单地粘贴如下:

#WML/WAP types
AddType text/vnd.wap.wml .wml
AddType application/vnd.wap.wmlc .wmlc
AddType text/vnd.wap.wmlscript .wmls
AddType application/vnd.wap.wmlscriptc .wmlsc
AddType image/vnd.wap.wbmp .wbmp

基本的WML 文件使用MIME 类型 text/vnd.wap.wml。在以上的配置中,我们告诉Apache 当文件名以 .wml
结尾时,发送这种MIME 类型。同样地,另外的WML 变体也有对应的MIME 类型。.wmlc 表示压缩的WML
文件,.wmls 以及 .wmlsc 分别表示 WML 脚本语言和压缩的WML 脚本语言,更进一步,.wbmp 表示无线
的 bitmap 文件,或者 WBMP,无线设备支持的一种图像格式。

配置好httpd.conf 后,Apache 需要重新启动才能让 MIME 设置生效,一旦重新启动,Apache 就可以把WML
以及相关文档发送到无线设备上了。

▲ 开发仿真

你或许会想,配置Apache 在理论上如此完美,敲次颐窃诿挥形尴叩缁暗那榭鱿拢?趺粗?佬Ч?兀课颐?
不是在瞎搞吗?

幸运地是,我们没有。如果你在开发WML,并且想要测试你的Apache 配置,检查phone.com 的 UP.SDK
包,它包含了十分强大而方便的UP 仿真器。UP 代表”Unwired Planet”,它会在你的桌面上显示一个虚拟
的蜂窝电话,你可以在因特网(用你普通的有线方式联结)上联结任何的WML 页面。

这个仿真器甚至包含了可以替换的“皮肤”,或者叫做不同型号的移动电话的模板,你可以看到WML 页面在
不同的屏幕大小和不同的供应商的产品型号下的表现。这款仿真器对于原型开发WML 的页面来说真的是个好东西。

原文出处:http://webcompare.internet.com