Client-Specific Web Services by Using User Agent Attributes



Client-Specific Web Services by Using User Agent Attributes

W3C NOTE 12-30-1997

This document:

Tomihisa Kamada, ACCESS Co.,Ltd.,
Tomohiko Miyazaki, ACCESS Co.,Ltd.,

Status of this Document

This document is a NOTE made available by the W3 Consortium for discussion only. This indicates no endorsement of its content, nor that the Consortium has had any editorial control in it preparation, nor that the Consortium has, is, or will be allocating any resources to the issues addressed by the NOTE.

This document is based on the public recommendation proposed by EIA(Easy Internet Association in Japan) in September 1997. EIA promotes the consumer Internet market both from the side of services and from the side of information appliances.


This document describes a simple framework for realizing client-specific web services. The proposed method uses the client properties such as screen size and colors, available input methods, web page capacity, secondary storage size, product category, CPU type, and etc., which we call "User Agent Attributes". We also describe an implementation of this framework by using the User-Agent header in HTTP. This enables the client-specific services for various Internet information appliances like Internet-TVs, PDAs, and smart phones.


  1. Introduction
  2. Requirements
  3. A Simple Framework for Realizing Client-Specific Web Services
  4. A Practical Implementation
    1. Notation
    2. Properties and Values
  5. Future Extension and Concluding Remarks


Appendix Table of User-Agent Attributes Specification

1. Introduction

The Internet world is rapidly growing, beyond the PC world, into the consumer home market. A variety of Internet information appliances are already put into the market, and seem to be spread very fast. The examples of Internet information appliances are Internet-TVs, set-top-boxes, home word processors, PDAs, smart phones, and car navigation. These devices have unique features respectively. There are various screen sizes from cellular phones to wide TVs, color variations from mono-color to 32-bit colors, different input methods, different CPUs, and different page buffer capacity. This implies that the web pages should be hopefully prepared suitable for these consumer devices respectively.

2. Requirements

There are two major advantages of the client-specific web services as follows.

(1) Minimize network traffic (High speed communication)
(2) Best fit web pages

For example, when a client like low-cost PDA can display only mono-color texts and images, it is definitely better to send mono-color web pages from the server to the client, which can reduce the bytes of page data through the network. This is, in fact, beneficial to users both in performance and in communication cost, especially in the case of low-band wireless network. When a client has limited display space like 320 x 240(1/4 VGA: normal size of car navigation display), web pages fit for this size would be better. When an Internet-TV has only a remote controller as the input device, web pages designed for easy operation with a remote controller are required.

Several information providers are going to start the services focusing on consumer Internet devices (non-PC devices). The common definition and rule for client-specific services, on which these information providers can rely, is required.

3. A Simple Framework for Realizing Client-Specific Web Services

In order to realize such client-specific web services, a general framework for reporting the client properties from the client to the server is required. The basic idea follows.

    Client *********************** Server
    ------ (1) User Agent Attributes ----->
    <----- (2) Best Fit Web Pages --------

The client reports useful "User Agent Attributes" to the server with the content request. The server recognizes the properties of a connected client, and understands how the client browser works. Then, the server sends the suitable HTML contents to the client.

4. A Practical Implementation

In order to implement the general framework described above, we propose a practical method by using the HTTP/1.0, HTTP/1.1 User-Agent header. This straightforward extension to HTTP is very simple but enough powerful for the client-specific services. The defined specification guarantees the upper compatibility with HTTP/1.0 and HTTP/1.1.

4.1. Notation

Here we describe the definition for the extended User-Agent header. The client property information is added to the normal User-Agent header using a comment field. An example for the Internet-TV follows;

User-Agent: AVE-Front/2.0
(BrowserInfo Screen=640x480x256; InputMethod=REMOCON,KEYBOARD; Page=512K; Product=XXXX/Internet-TV; HTML-Level=3.2; Language=ja.JIS; Category=TV; CPU=SH2; Storage=NO;)

The client property information is defined as the following Prof_def.

Prop_def = "(" "BrowserInfo" Prop_items ")"
Prop_items = Prop_item | Prop_items Prop_item
Prop_item = Prop_name "=" Prop_value ";"
Prop_name = STRING
Prop_value = STRING

The upper case and lower case in describing Prop_name and Prop_value have to be discriminated.

4.2. Properties and Values

The following properties are defined for representing the client features.

Prop_name = "Screen" | "InputMethod" | "Page" | "Product" | "HTML-Level" | "Language" | "Category" | "CPU" | "Storage"

Several values are defined for respective properties below. In the cases of some properties, it is difficult to define without ambiguity. The proposed properties and values intend to give useful cues to the contents providers. The properties "Screen", "InputMethod", "Page", "Product", and "HTML-Level" are strongly recommended.

(1) Screen
The Screen property represents the screen size and the number of colors. The values are defined as the format: width (pixels) "x" height (pixels) "x" colors. The representative screen sizes are 800x600, 640x480, 480x240, and 320x240. The color variations are defined one of the following values;

2, 4, 8, 16, 32, 64, 128, 256, 32K, 64K, 16M.
Example: Screen=320x240x4 (Quarter VGA size screen with 4 gray scale colors)
Screen=640x480x64K (VGA size screen with 16-bit colors)

(2) InputMethod
The InputMethod property represents which input methods are available for the browser operation. The values are defined as one or some of the following values;

Example: InputMethod=PEM, KEYBOARD (typical word processors)
InputMethod=REMOCON (typical TVs)

For example, in the case of the products like Internet-TVs with only REMOCON (remote controller), the web pages designed for easy operation with left, right, up, down buttons are required. And, clickable maps should be avoided because it is difficult to operate by using a remote controller.

(3) Page
The Page property represents the memory capacity for web page buffer. The value is defined as K bytes unit or M bytes unit.
Example: Page=512K

(4) Product
The Product property represents the information of the client product. The values are defined as the format: manufacturing company name/product name.
Example: Product= XXX/InternetTV97

(5) HTML-Level
The HTML-Level property represents which level of HTML is supported by the client. The values are defined as one of the following values;

1.1, 2.0, 3.2, 4.0
Example: HTML-Level=3.2

We are going to add the subset levels of compact HTML for small information appliances such as smart phones.

(6) Language
The Language property represents the information of language which the client prefers to receive. The values are defined as LANGUAGE_TERRITORY.CODESET, where LANGUAGE(lower case) and TERRITORY(upper case) are defined by ISO 639 and ISO 3166 respectively, and CODESET(upper case) is followed by "." if necessary.
Example: Language=ja.SJIS (Japanese (SJIS Code))
Language=zh_CN(mainland Chinese)

(7) Category
The Category property represents the category of the client product. The values are defined as follows;

TV, WP, PDA, Phone, PHS, Display, CarNavi, STB, ...
Example: Category=PDA

The Category property is actually required from the service companies. For example, when a service company wants to provide the PDA-specific web services, this property may be useful.

(8) CPU
The CPU property represents the CPU type which the product uses. The values are defined as follows;

x86, 68000, SH1, SH2, SH3, SH4, ARM7, ARM8, M32R, V810, V830, Vr4100, Vr4300, R3000, R4000, PowerPC, ...
Example: CPU=SH3

When new chips are available, suitable values should be added. The CPU property is used to download the executables such as plug-in software and the browser (version up). The users of consumer information appliances are general end users, and they do not have enough knowledge about the hardware and software. It is, therefore, required to download the right module automatically by the client-server negotiation.

(9) Storage
The Storage property represents the availability and the size of the secondary data storage. The local storage such as flash memory, hard disk, or floppy disk is used for "push" type Internet services. The value is defined in the same way as the Page property. In the case of no storage, the value NO is used.
Example: Storage=NO

When local property extensions are required for some products, X-yyyy property name is recommended.

5. Future Extension and Concluding Remarks

The proposed definition of User Agent Attributes covers the major client properties which are useful to realize the client-specific services. In the future, there may be some Internet consumer devices we cannot imagine at present. Other client properties might be necessary to meet the requirements of growing consumer Internet area. It is easy to add new properties and values to this definition.

In this document, we have presented a simple framework for client-specific web services and its practical implementation. There might be other possible implementations like pre-registration of User Agent Attributes or "Transparent Content Negotiation Mechanism" proposed in [2]. We are also planning to propose the IETF that the client properties should be reported from the client (user agent) in User-Agent or Accept-Features header in the future HTTP version.


[1] R. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, and T. Berners-Lee, HyperText Transfer Protocol - HTTP/1.1. RFC2068, HTTP Working Group, Jan. 1997.
[2] K. Holtman and A. Mutz, Transparent Content Negotiation in HTTP, Internet-Draft, Mar. 1997.
[3] D. Connolly, PEP: an Extension Mechanism for HTTP, Internet-Draft, Mar. 1997.


We would like to thank to the EIA Tech-WG members listed below for the discussions and promotions. We are grateful to Hiroshi Nagaoka (OMRON Co.) for his suggestions of the Language property, and to Hideki Sakamoto (NTT) for his helpful comments and suggestions.

In addition, we would like to thank to Prof. Nobuo Saito (KEIO University) and other W3C members for their supports and suggestions. Finally special thanks to the manufacturing companies of information appliances using our NetFront browser (supporting the User-Agent attributes based on this document): CASIO, EPSON, Fujitsu, JVC, Matsushita, Mitsubishi, NEC, SHARP, SII, and SONY. Also thanks to Recruit which realizes the web services using this framework.

EIA Tech-WG Members
Company Name
ACCESS Co.,Ltd. Tomihisa Kamada
ACCESS Co.,Ltd. Masahito Koike
ACCESS Co.,Ltd. Hiroshi Suzuki
ACCESS Co.,Ltd. Tomohiko Miyazaki
Easy Internet Association Nozomi Naka
NEC Home Electronics, Ltd. Takeshi Saito
NEC Home Electronics, Ltd. Kenji Kageyama
NEC Home Electronics, Ltd. Toshiharu Ikeda
CASIO Computer Co., Ltd. Satoshi Ogasawara
CASIO Computer Co., Ltd. Masaru Sakata
Seiko Epson Co. Hidekazu Maezawa
Nippon Telegraph and Telephone Co. (NTT) Masaru Nonaka
Mitsubishi Electric Co. Yasutaka Urakawa
Recruit Co., Ltd. Takashi Yamamoto

Appendix Table of User-Agent Attributes Specification

User-Agent Attributes Specification
User-Agent Attributes Prop_name Prop_value Priority
Screen size Screen 800x600, 640x480, 480x240, 320x240, 240x160, ... Recommended
Colors Screen 2, 4, 8, 16, 32, 64, 128, 256, 32K, 64K, 16M Recommended
Input Method InputMethod PEN, KEYBOARD, MOUSE, REMOCON, BUTTON, JOG, ... Recommended
Memory Capacity Page 512K, 800K, 1M, 1.2M, 1.5M, ... Recommended
Product Information Product Manufacturer/Product Recommended
HTML Level HTML-Level 1.1, 2.0, 3.2, 4.0, ... Recommended
Preferred Language Language LANGUAGE_TERRITORY.CODESET Optional
Product Category Category TV, WP, PDA, Phone, PHS, Display, CarNavi, STB, ... Optional
CPU Type CPU x86, 68000, SH1, SH2, SH3, SH4, ARM7, ARM8, M32R, V810, V830, Vr4100, Vr4300, R3000, R4000, PowerPC, ... Optional
Secondary Storage Storage NO, 512K, 1M, 2M, ... Optional


User-Agent: Mozilla/3.0N AVE-Front/2.0
(BrowserInfo Screen=640x480x256; InputMethod=REMOCON, KEYBOARD; Page=512K; Product=XXXX/Internet-TV; HTML-Level=3.2; Language=ja.JIS; Category=TV; CPU=SH2; Storage=NO; )