Mobile Safari

The iPhone and the iPod Touch both run a device-specific version of Safari that has a few peculiarities, ranging from rendering and media capabilities (i.e., no Flash) to JavaScript and DOM quirks.

Here’s what I know about it:

User-agent

The first official iPhone User-Agent was:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

The first iPod Touch User-Agent was:

Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML,like Gecko) Version/3.0 Mobile/3A100a Safari/419.3

However, things have changed with consecutive firmware updates, so here is a sampling of what I found in my server logs, together with dates (IP addresses removed, since besides a bunch of hits from Apple corporate itself, there were others a lot more… revealing. Whoever happens to be reading this site deserves to know I respect their privacy):

[28/Feb/2007:23:14:06 +0000] "Mozilla/5.0 (iPhone; U; ARM OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Safari/419.3 Version/3.0 Mobile/241"
[15/Mar/2007:06:17:14 +0000] "Mozilla/5.0 (iPhone; U; XXXXX OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Safari/419.3 Version/3.0 Mobile/241"
[22/Mar/2007:06:39:15 +0000] "Mozilla/5.0 (iPhone; U; XXXXX like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Safari/419.3 Version/3.0 Mobile/241"
[28/Apr/2007:07:50:00 +0100] "Mozilla/5.0 (iPhone; U; PPC like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A001a Safari/419.3"
[15/May/2007:01:00:58 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A523a Safari/419.3"
[28/May/2007:00:00:35 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A537a Safari/418.4"
[12/Jun/2007:04:13:45 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3"
[21/Jun/2007:16:42:06 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A538a Safari/419.3"
[01/Aug/2007:18:23:01 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C25 Safari/419.3"
[22/Aug/2007:03:58:51 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3"
[07/Sep/2007:00:20:48 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko)" - spoof?
[08/Sep/2007:13:54:10 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A538b Safari/419.3" - spoof?
[09/Sep/2007:02:32:03 +0100] "Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML,like Gecko) Version/3.0 Mobile/3A100a Safari/419.3"
[30/Sep/2007:08:05:03 +0100] "Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A110a Safari/419.3"
[30/Sep/2007:14:02:36 +0100] "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A109a Safari/419.3"

The above involved piping my logs through the following incantation of cut to obtain the correct fields:

cut -d\  -f 4,5,12-
There doesn't seem to be an @X-WAP-Profile@ header in any instance whatsoever, although I could be wrong at this point (this site pays attention to that, and so far nothing unusual has come up).

The interesting bit is that there are rumors of X-headers being sent, but I have no hard evidence in my server logs (naturally, since nothing logs extra headers unless you look for them specifically).

Someone with more time and patience will eventually do a full packet dump and we’ll all know about it.

Resources: