Wireless Application Protocol

Nokia 7110 - the first mobile to deliver the Internet on the phone.

image ©nokia.com

The mobile Internet became available around 1999. The first phones, such as the Nokia 7110, were monochrome, small memory and slow processor and used either dialup GSM network or the later GPRS. At that time the "desktop" Internet was well developed and it was unrealistic to be able to use the same TCP/IP or HTML based Internet on these phones. To overcome this the WAP protocol was developed. It was designed as a "lighter" protocol, less general purpose, but with fewer overheads than TCP/IP.

Rather than using HTML a new language WML was developed. It was based on a novel concept of a page being a "Deck" of "Cards". With one call to the server a number of "cards" are delivered to the phone with the first card displayed on the device. Local navigation allows the user to move between cards without another server call. Thus the trick is to deliver as many passible cards in a single server call as possible. However the 1.4K memory limitation made sure that that the number of cards was still limited. The WML language allowed text to be displayed plus links to other pages or cards. There is minimal styling included. A simple image format (WBMP) was also prescribed but in reality this was not great. For input, their was some 'on phone' validation of input data, again reducing the number of server call required. Support for directly making phone calls or SMS messages was native to the language. There is a scripting language (WMLS) that allows some local processing but again this is limited and not very useful.

Most WML examples show static code but WML can be generated via PHP and integrated with MySQL, or other server side technologies. Care is required to ensure that the server is aware of the MIME type of WML generated. However with this dynamic element many useful WML sites were written before the language was overtaken by events.

Some pointers to the future with WAP

  • WML forces strict XML compliances making for a better language. HTML has never enforced this and thus variations of what happens especially when the syntax is 'relaxed' occur.
  • A single server call delivers a number of "cards" in a similar way that JQuery Mobile delivers "pages" reducing server calls.
  • Local validation of user input as is included in Bootstrap
  • Direct link to phone calls and sms messages to connect to the native features of the phone