非常不错的WAP常见问题问答大全(二)
更新时间:2007年03月14日 00:00:00 作者:
30. WML页面的最大大小是多少?
1397 bytes/deck
31. WML页面的限制是多少?
由于WAP设备只有很少的内存,因此就存在着一个最大的WML deck的界限。这里没有一个绝对的标准,根据浏览器的不同而不同。表10-5列出了几种浏览器的限制。
注意WML deck的大小是指编码压缩成二进制格式下的大小,一个没有压缩的WML deck可能很大,但是压缩后可能比较小。
表10-5 不同浏览器的限制
浏览器 压缩后的WML大小限制
UP.Browser 3.2 1492 bytes
UP.Browser 4.x 2048 bytes
Ericsson R320 大约3000 bytes
Ericsson R380 大约3500 bytes
Ericsson MC218 多于8000 bytes
Nokia 7110 1397 bytes
32. 如何防止对WML页面的非法访问?
WAP可以防止通过HTTP协议对文件和目录的非法操作。注意:有些WAP模拟器和虚拟的WAP浏览器可能不支持这个特点。在这个时候是不知道是否有可能使用其他类型的验证方式。
为了使用这种方式,用户的HTTP服务器必须支持这个特点,其实大多数服务器都支持。当一个WAP浏览器请求一个URL,它将提醒用户输入用户名和密码。这些都转换成无法直接阅读的字符,但不是加密。也就是说如果网络上有人在使用合适的设备监听,那么用户名和密码将被泄露。
这个特点在Apache文档中有详细的说明,但是文档的描述很弱,这里有如何在Apache HTTP服务器上配置的说明:
要保证Apache已经配置过,使得一个名叫.htaccess的文件可以覆盖全局的操作配置。操作配置既可以在每个目录使用分离的文件,也可以在全局的access.conf中。但是在这个例子中,我们将集中在.htaccess文件上。并且检查AllowOverride的设置。这个必须设置到AuthConfig,那样意味着Apache在目录中寻找.htaccess文件,并且使用该文件中的规则。记住在配置后要重新启动Apache服务器。
下一步是在目录里放置需要保护的文件叫做.htaccess。(注意点代表文件名的开头)。一个.htaccess文件的基本内容如下:
AuthType Basic
AuthName "WAP FAQ Authentication Demo"
AuthUserFile /home/httpd/html/wap-faq/extras/auth/auth.passwd
require valid-user
AuthType设置是指定验证的类型,AuthName指定领域,AuthUserFile指定口令文件的位置,require指定所想得到的操作。在这个例子中,任何在口令文件中的用户都有一个正确的口令。
现在需要产生一个口令文件,Apache使用一个叫做 .htpasswd来完成这个特殊格式文件的生成。运行程序如下:
#htpasswd /home/httpd/html/wap-faq/extras/auth/auth.passwd demo
New password:
Re-type password:
Adding password for user demo
注意:在第一次创建文件的时候,必须使用“-c”选项。
现在加入了一个叫做“demo”的用户,并且输入了他的密码两次。考虑到安全的原因,口令文件不应该放在文件根目录下。笔者在这里只是做演示。
现在最后就是测试,笔者建议使用HTML浏览器。输入含有想保护的URL目录的地址,一个对话框就会弹出来询问用户名和口令。如果一切顺利,就可以使用WAP浏览器来测试了。
一个目录保护的例子在这个服务器上,用户名是demo,口令是demo。可以使用HTML或者WML浏览器来做测试。
这个例子同样可以通过输入http://wap.colorline.no/demos.html来得到。
或者只要点到保护的区域:
http://wap.colorline.no/wap-faq/extras/auth/
或者查看.htaccess文件。
最后点击查看口令文件的内容。
33. 怎么使用非拉丁字符?
在文件开头加上:
encoding="ISO-8859-1"?
或者:
encoding="UTF-8"?
ISO-8859-1和UTF-8编码支持更多的字符。
34. 一些特殊字符破坏了代码和连接该怎么办?
锚/链接有时候包含了一些字母和数字之外的字符。典型的如:“~”(波浪号)和“&”(与号)。如果根据书编程,就应该告诉WAP浏览器使用的是什么字符集。这个在XML定义中可以完成:
<?xml version="1.0" encoding="iso-8859-1"?>
“iso-8859-1”是Latin字符集。这个应该在大多数场合下能满足需要。但是,还是需要对那些转义字符进行转义。即使指定了字符集,也是没有用处的。
字符实体是某些特殊字符的标准名字,例如:“&”就是“&”。
大多数浏览器在反编码名字实体的时候会出现问题,例如Nokia列出了7个兼容的名字实体:“quot”、“amp”、“apos”、“lt”、“gt”、“nbsp”和“shy”。只有在使用它们的十进制代码的时候(在上述所说的Link中),浏览器可以显示几乎所有字符。如果Nokia的浏览器接收到无法支持的实体名,它就会崩溃。
通过使用HTML或者WML浏览器(在HTML格式下,虽然不是很好),可以操作在线的实体名列表,该列表在http://wap.colorline.no/wap-faq/apps/charentref.html。
这个表同样有一个例子在:http://wap.colorline.no/demos.html。
第一步,选择将要使用的字符集,Latin1,Latin1 Mathematical和Greek symbols,最后是Latin1 Markup symbols。注意到列表被分割了,是由于deck的限制。真正的列表显示了实体名,实体的十进制值和真正的符号。从这里就可以看到哪个字符浏览器可以显示。
注意上面的在线列表,不要设置为“charset=iso-8859-1”(真正的Latin1),那是个XML定义。
35. 可能在WML页面上显示一个可选的Link吗?当用户选择后就可以直接拨号?
现在不行。但是一旦支持WTAI的设备出现,那么就可能实现。
最新评论