Useful “X headers”

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 recognition, 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

AvantGo headers.

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

15 Comments

  • jddcef says:

    Hi Jonare, I’ve got a collection of HTTP Headers for you over a few years from a few test devices:
    Here is the current file http://wap.defza.com/ua/ua.txt
    But you can also look at http://wap.defza.com/ua/ua1.txt … ua2.txt etc

  • ravi_tandon says:

    Hi,

    I am adding x-imsi=123456789123456 in the HTTP header in the GET request to identify the user at my portal, but
    as soon as this change is added, the browsing stops and just re-transmission of GET request and response as 200 OK , goes on and on…

    Can somebody please help? And tell what might be getting wrong with this approach

    Regards,
    Ravi

  • TEJISINGH says:

    HOW CAN WE OBTAIN THESE VALUES IN PHP. CAN WE RUN A NORMAL SITE ON WEB BROWSER AND CALL A PHP SCRIPT TO GET THESE HEADERS.
    THANKS

  • Janavarrom says:

    Hi,

    Need your help.
    I work in a Telco company, and try to do an mobile app, and i wanna know some especial info from the clients are using mobile network (2G,3G or 4G) when they comes to “www.mycompanytelco.cl”, like:

    1. Phone Number
    2. Type of network (2G, 3G or 4G)
    3. He is using roaming or not.

    when i read your article i realize thats posible, but need more informtion about the responsability from ISP in the configuration to turn on this X-Headers.

    (Sorry for my english)

    Thanks a lot.

    Javier Navarro
    Licenciado en Ciencias de Computacion.

Other Afilias Products

Try the world’s leading device detection solution at
DeviceAtlas - Try the world’s leading mobile device detection solution

Create amazing web presences on any screen with
goMobi - Create amazing web presences on any screen.

Evaluate your websites’ mobile readiness with
mobiReady - Evaluate your websites’ mobile readiness.

© 2016 Afilias Technologies Ltd. All rights reserved.

This is a website of Afilias Technologies Ltd, a private company limited by shares, incorporated and registered in the Republic of Ireland with registered number 398040 and registered office at 6th Floor, 2 Grand Canal Square, Dublin 2, Ireland