My hobby for a while has been to collect "X-headers". X-headers are fields in the request HTTP header beginning with an X. Put simply. These fields are kind of non-standard or proprietary add-ons to the regular fields in the HTTP header. These can be used for all kinds of fun stuff when building mobile portals. I have made a collection of some x-headers here.
Usually it is smart to blog about stuff you know. I will be the first to admit that I am on thin ice here, but I hope someone out there becomes a tiny bit more enlightened by this post.
X-headers can be used for many different things: User identification, device detection, probing for network characteristics and much more. This information is useful both in terms of creating a good mobile experience and in terms of statistics.
I have listed a selection of headers below from devices that have visited my site. I don’t know what all of these mean; many can be "man made" for all I know, but it's still interesting. If I am wrong about some, or you have additional information, please comment.
These are headers we already know very well
Header name |
What it means |
x-forwarded-for |
Originating IP of a client connection to the server |
x-forwarded-host |
Origination host name |
x-forwarded-server |
Originating server name |
x-wap-profile |
A reference to the user-agent profile as specified. |
x-wap-profile-diff |
The wap gateway or proxy can choose to override the UA-profile. The diff is specified here. |
Other interesting headers
Header name |
What it means |
x-apn-id |
Identifies the Access Point Name. Wap, internet, email etc. can have different APNs |
x-charging-id |
Anyone know this? It had no value |
x-drutt-3pi-request-uri |
Drutt is a business support system, bought by Ericsson. What this header means? Don't know… |
x-drutt-3pi-serviceid |
Dont know. |
x-drutt-device-id |
Identifies the device by name. For example: "Nokia_N95__S60_browser_" |
x-drutt-request-id |
Usage, unknown. |
x-ebo-ua |
Usage, unknown. |
x-ggsnip |
Contains the IP of the GGSN in the network. |
x-h3g-cc |
Usage, unknown. A header from Three, this… |
x-h3g-client-ip |
The current IP of the device in the network. Identifies session. |
x-h3g-customer-subtype |
Identifies the customers subscription type. |
x-h3g-customer-type |
Identifies the type of customer. |
x-h3g-device-name |
Name of the device. Example value: Nokia-N95-Safari |
x-h3g-nc |
Dont know. Had the value "4". |
x-h3g-network-quality |
Type of network. "3G" for example. |
x-h3g-party-country |
Identifies the home country of the user |
x-h3g-party-id |
Dont know. |
x-h3g-party-status |
Dont know |
x-h3g-party-user-id |
Dont know |
x-h3g-roaming-status |
Identifies if the user is roaming. Bool value |
XID |
Dont know |
x-jphone-color |
Some softbank stuff |
x-jphone-display |
Screen size. |
x-jphone-msname |
Dont know. example value: 821P |
x-jphone-region |
Dont know |
x-jphone-smaf |
Dont know.Example value "40/pcm" |
x-jphone-uid |
A garbled unique identifier of the user |
x-lori-time-1 |
Dont know |
x-net-info |
Dont know. |
x-network-info |
Contains bearer (i.e. GPRS) internal IP address etc. |
x-os-prefs |
Tells something about the capabilities of the device. Example value: "fw:240; fh:320; cd:24c; pl:3; pj:1; pa:1;pi:1;ps:2;" |
x-proxy-id |
Dont know. |
x-psp-browser |
The Playstation Portable browser version |
x-psp-productcode |
Dont know. The value is "CEL" |
x-roaming |
Roaming info. Values "Yes" or "No" |
x-sgsnip |
The IP address of the SGSN
|
x-source-id |
Dont know |
x-wapipaddr |
IP address of the wap gateway. |
x-wap-proxy-cookie |
A cookie? |
x-wsb-contextid |
Dont know. Some Vodafone stuff? |
Headers from OpenWave gateways
I am not too familiar with this, so I'll just refer to the wirelessFAQ
Header name |
What it means |
x-up-calling-line-id |
End users phone number |
x-up-devcap-accept-language |
Similar to the accept-language header |
x-up-devcap-cc |
Dont know. Value is "1" |
x-up-devcap-charset |
Charset |
x-up-devcap-charset: utf |
Charset stuff |
x-up-devcap-immed-alert |
Dont know |
x-up-devcap-iscolor |
Defines if the device has a color screen. Bool |
x-up-devcap-max-pdu |
Max size of payload. |
x-up-devcap-msize |
Dont know. |
x-up-devcap-numsoftkeys |
Numbers of softkeys on the device |
x-up-devcap-screen-chars |
Numbers of characters that fits on one line? |
x-up-devcap-screendepth |
Color depth |
x-up-devcap-screenpixels |
Screen size in ipxels |
x-up-devcap-smartdialing |
Dont know what smart dialing is, might be the "click to call" function |
x-up-devcap-softkeysize |
Dont know |
x-up-fax-accepts |
Dont know |
x-up-fax-limit |
Dont know? |
x-up-subno |
Some kind of identifier of the end user |
x-up-uplink |
Seems like the dns name of the wap gateway |
x-up-wappush-secure |
Dont know |
x-up-wappush-unsecure |
Dont know |
x-up-wtls-info |
Dont know. |
Nokia wap gateway headers
Header name |
What it means |
x-nokia-alias |
The end users phone number. encrypted. |
x-nokia-bearer |
i.e. GPRS |
x-nokia-connection_mode |
typically TCPIP |
x-nokia-gateway-id |
Identifies the wap gateway. Seems similar to the use of the Via header |
x-nokia-imsi |
Imsi value |
x-nokia-ipaddress |
Internal IP address |
x-nokia-localsocket |
Internal IP and a portnumber. |
x-nokia-msisdn |
The users phone number in plain text. |
x-nokia-musicshop-bearer |
Nokias music shop. Typically "GPRS/3G" |
x-nokia-musicshop-version |
Nokias music shop. The version. |
x-nokia-prepaidind |
Something to do with the type of subscription. The value is "4" |
Transcoder headers
Header name |
What it means |
x-novarra-device-type |
A Novarra header. Dont know the usage. The value is "0" |
x-operamini-features |
Header added by the Opera Mini proxy. Values are "advanced, download, camera, folding, inputhints" |
x-operamini-phone |
The phone name provided by the Opera Mini proxy. |
x-operamini-phone-ua |
The original user-agent of the device using a Opera Mini browser |
x-original-user-agent |
Googles transcoders way to pass the device' user agent to the server. |
x-surfopen-msisdn |
Some SurfOpen stuff. The value idicates that it is created by humans |
x-moz |
Dont know, but seems to define some kind og proxy behaviour. The value is "prefetch". |
x-bluecoat-via |
Not sure what this is, but probably related to bluecoat. Is it transcoding? |
x-mobile-gateway |
Identifies the gateway/proxy. In this case: "Novarra-Vision/6.9 (TELIASONERA; Server-Only)" |
x-mobile-ua |
This is the Mowser way of transmitting the original user agent |
x-device-accept |
The device' original accept headers when squezed through a transcoder. In this case; Novarra. This behaviour is recommended by w3c
|
x-device-accept-charset |
se above |
x-device-user-agent |
se above |
Headers that can be used to identify the end user
Header name |
What it means |
x-drutt-client-ip |
Probably the current IP of the handset. The value is an internal IP in the 10. range |
x-drutt-portal-user-id |
A unique ID of the user in the drutt system. |
x-drutt-portal-user-msisdn |
The mobile phone number. |
x-h3g-msisdn |
the phone number. |
x-imsi |
The imsi number. Identifies the end user. |
x-msisdn |
The end users phone number |
x-nas-ip |
Dont know. The value is an internal IP |
x-wap-clientid |
Seems like a unique identifier of the user. |
x-wap-personalization |
Internal IP of the device in the telecom network |
x-wsb-identity |
End users phone number |
x-wte-msisdn |
Indicates that the value is a phone number. Does not look like that… |
x-nokia-imsi |
Imsi value |
x-nokia-alias |
The end users phone number. encrypted. |
x-nokia-msisdn |
The users phone number in plain text. |
x-up-calling-line-id |
End user identifier |
Header name |
What it means |
x-avantgo-browser |
Identifies the AvantGo browser |
x-avantgo-channelid |
Self explaining |
x-avantgo-clientcharset |
Charset used in the client |
x-avantgo-clientlanguage |
Language code for the cloent |
x-avantgo-colordepth |
Value: "MTY" |
x-avantgo-cradlesync |
Value: "TRUE" |
x-avantgo-deviceid |
String identifying the device. |
x-avantgo-deviceos |
The operating system? |
x-avantgo-deviceosversion |
Os version? |
x-avantgo-deviceprocessor |
Processor? |
x-avantgo-platformdata |
? |
x-avantgo-screensize |
A string providing the screen size? Exampe value: "MTUweDo1MA" |
x-avantgo-tracking-referer |
? |
x-avantgo-url |
If it is an url, it is encrypted. |
x-avantgo-userid |
Identifying the end user. |
x-avantgo-version |
The version of AvangGo |