Web Application techniques to avoid when going wireless.
A WDN feature by James Werwath (Dec. 19, 2001)
Now that both Openwave and Nokia browsers are
supporting XHTML Basic, WAP application programmers might be inclined to assume
features like HTTP cookies and HTTP redirect are available to WAP applications just as they
are in regular web applications. The reality is that WAP application programmers
need to be careful.
HTTP cookies are widely used to keep session state with a client.
The problem with WAP applications is that HTTP cookies are not always supported or enabled
on the gateway. Unlike a web browser such as Internet Explorer, a WAP
browser does not always have the ability to turn cookies on and off. Cookies can be
enabled or disabled at the WAP gateway which services all users. Savvy
application developers who normally use cookies may have to submit to the old
standby of URL-rewriting. Even in non-WAP wireless applications cookie support
has been sporadic. Palm Web-Clipping applications, for example, just started
supporting cookies with Palm OS 4.0.
Cookies are not the only web-trick that may not work in the WAP world; HTTP
Content-Location headers are similarly supported in only certain contexts.
Content-Location headers are especially useful for WML applications
because
WML (pre-WML 2.0) has no concept of a "BASE" tag. (The WML 1.1 spec
states that the base URL by default is the URL of the deck).
HTTP Content-Location headers can be use to mimic the functionality
of a BASE tag for WML. Unfortunately, as the test data shows, this will
not work in all cases.
Unlike Cookies and HTTP Content-Location headers,
HTTP redirects seem to be widely supported by gateways. It
concerns me however that the Nokia Mobile Internet Toolkit Version 3.0 allows
the user the ability to turn off HTTP redirect. Does this mean that they
expect instances where HTTP redirect is not supported ? So far, so good.
The combinations I have tested all work.
The good news is that there is hope for newer WAP clients. The WAP forum has released specifications on how to effectively
preserve client state.[1] WML2 (WML 2.0) now combines xHTML Basic and WML which does
include a BASE tag.[2] But if you are planning a public wireless application, or
you must support legacy WAP clients, think twice about using these old web
application techniques.
Test Results
| Openwave UP.SDK 4.1 | Nokia Mobile Internet Toolkit Version 3.0 |
Touchpoint (LG) running openwave 3.1.04-LG06 browser and UP.Link 4.3.3.1 on SprintPCS network
| Nokia 7160 Using Nokia browser version 1.1 and Nokia Artus WAP Gateway 2.2/CD2 (1.1.1.1) on Cingular network
| Motorola Timeport P280 using openwave MOT-PAN4_/11.03 UP.Browser/4.1.23c browser and Nokia Artus WAP Gateway 2.2/ECD6 (1.1.22) gateway on Voicestream network.
|
| Cookie support | YES | NO* | YES | YES | NO
|
|---|
| Content-Location support | YES | NO | YES | NO | YES
|
|---|
| HTTP Redirect | YES | YES | YES | YES | YES
|
|---|
*
Did not work even with HTTP cookies turned ON in the Nokia Mobile Internet Toolkit.
For more information about the configuration of the test cases, more data on
the test cases, or for
a copy of the J2EE/JSP code used to test these criteria, send an email to the
address below.
[1]HTTP State Management Specification 13-DEC-2000 from WAPforum
[2]Wireless Markup Language 2.0 26-JUN-2001 from WAPforum
About The Author: James Werwath is an AT&T Certified Wireless Developer, Sun Certified Java Programmer and Architect currently developing wireless solutions at Novarra Inc.. He can be reached at jwerwath@novarra.com