W3C home > Mailing lists > Public > public-bpwg-comments@w3.org > July to September 2008

Changing User Agent Header Value (was Re: transcoders bad)

From: Jo Rabin <jrabin@mtld.mobi>
Date: Wed, 06 Aug 2008 10:06:58 +0100
Message-ID: <489969B2.1060207@mtld.mobi>
To: public-bpwg-comments@w3.org

This seems to be going round in circles and I am unsure of what points 
are being made. It's going to be difficult for the WG to extract 
specific points to be addressed.

I think that there is a possibility that the discussion is based on 
premises that I don't perceive in the document.

It would be helpful to me, as editor, to know as separate issues:
a) in which ways the document does not make any of it clear,
b) which aspects of what it specifies are objectionable, and what 
possible alternatives there are, given the objectives.

Here's how I see it.

1) Changing User Agent or other headers is not prohibited by HTTP - 
except for as noted under 13.5.2


2) The CT Guidelines don't view the combination of transforming proxy 
and user agent as an extended user agent. That means that the normal 
operation of a CT proxy, as defined by us, is the same as the operation 
of a regular proxy.

3) We specify, over and above what HTTP specifies, that the User Agent 
and other headers should be left alone except in certain specific cases.

4) The first case is where a request, with the original headers, is 
rejected with a 406 error or equivalent. In this case the proxy MAY 
change the headers, but if it does MUST preserve the old ones in a 
different form. The reason for this is that in this case it is likely 
that the site does not have a specific mobile experience, and it serves 
the user's interest to get them an experience of some kind.

The document provides scope for CT Proxies to "remember" previous 
behaviour of Web sites and to short cut content tasting with original 
headers on the basis of that. This seems sensible on the basis that it 
improves user experience and reduces load on servers. However, if CT 
proxies adopt this behaviour then they must be prepared to reverse out 
of it if circumstances change.

Also, there is the possibility that the site really doesn't want the 
user of a mobile device to experience their content, and the option is 
open to them to signal that by using no-transform on the 406 response. 
This seems reasonable to me, given the relative infrequency of this use 
case, and given that special effort has to be taken to reject specific 
user agents in the first place.

5) The second case is where the user has specifically requested a 
restructured desktop experience. This is equivalent in my mind to using 
the Firefox User Agent Switcher.

My personal view is that most users will want to perceive a specially 
crafted mobile experience rather than a restructured experience, but 
other people do not share my view and it is at least conceivable that 
this is the case.

The document says "specifically requested". That means, in my view, that 
it is not established as a default setting.

[In detail there are also cases where a proxy MAY continue with headers 
from a previous request for the sake of continuing an ongoing session 
with some kind of consistency. We're talking about the "initial request" 

6) Notwithstanding either of the above:

The document says:

... It is anticipated that proxies will maintain preferences on a user 
by user and Web site by Web site basis, and will change their behaviour 
in the light of changing circumstances as discussed under 4.3.4 Receipt 
of Vary HTTP Header.

Section 4.3.4 says that the Proxy must keep an eye out for changed 
behaviour at the server and must re-evaluate both user preferences and 
the allowed short-cut on content tasting if circumstances change.

7) Allow and Disallow lists and what not.

We don't refer to lists in the document on the basis that we model the 
behaviour of the proxy in a black box way, i.e. the details of its 
internal operation are not subject to our specification. However, no 
matter how it works internally, the proxy must change its behaviour in 
the above circumstances.

In my mind this is specifically intended as a work around to real world 
operational problems and to provide a "self-healing" capability for 
incorrectly configured proxies.

8) Summary

The normal course of operation of a conforming CT proxy is not to change 
any header that it is not required to by HTTP.

There are two exceptions where the actual device headers are not 
presented first. They are 1) that the CT proxy is trying to optimise the 
fact that the request with the original headers will be rejected, and 2) 
where the user has specifically requested a restructured version of the 
desktop experience.

In both cases a server will have the knowledge that this is happening 
and may reject this behaviour.

Servers are not required to change their operation. If they decide to 
conform that is their option. If they don't, then conforming CT proxies 
are required in any case to assess whether the server is offering a 
mobile friendly service.

I hope this clarifies any misunderstanding as to what the document says. 
These are my views and not the official view of the Task Force, the 
Working Group, the W3C or any divine being.


On 05/08/2008 22:45, Luca Passani wrote:
> Sean Owen wrote:
>> It seems pretty simple. If you don't want transcoding, and aren't
>> doing content negotiation, and are already using the HTTP
>> mechanisms properly (i.e. no-transform), then you are done! no change.
>> This recommendation is not proposing anything new.
> not so. The transcoder may be changing the User-Agent string and still 
> claim that it is conforming to CTGs. How? very simple. The operator just 
> need to claim that it is a "full web on your mobile phone" they are 
> launching (exactly what VodaofoneUK and NOvarra did) and there you go: 
> you get a spoofed UA.
>> If you are doing content negotiation, you need to look for the
>> presence of one new header in the case that you are talking to a
>> transcoder, to both ensure you send no-transform and render for the
>> target device. This seems like two lines of code -- if you're not
>> already looking for this semi-standard header.
> Terren is right. If we change today, what will prevent Novarra or 
> someone else from asking to change tomorrow?
>> You are angry because you have interests and your interests have
>> clashed with those of transcoders. I am sure that is valid. This
>> document does not only represent content developer interests, but the
>> interests of end users. I don't think it's appropriate for a W3C
>> recommendation to represent only one party's interests, do you?
> this is a blatant lie. NOvarra, Google, Vodafone and ATT are here for 
> the money. Do not bring users into a discussion where they do not belong.
> Anyway, as I stasted quite a few times, developers are relying on a 
> neutral network for their business. Any attempt to remove neutrality is 
> an attempt to bring the internet back to stone age.
>> Transcoders exist, and they do add value in large number of cases.
> really? I only know of one case: Google.
>>  We
>> wouldn't operate one unless it was quite popular, since people
>> wouldn't use our service, we wouldn't make money.
>> You have a business problem. Luca's solution is "wish that transcoders
>> didn't exist." How's that working for you?
> well, this is not exactly what I said (I did say that I start to suspect 
> that the only good transcoder I saw was a dead transcoder, but that I 
> was sort of joking). I am OK with transcoders that respect mobile sites 
> without requiring that mobile sites do anything special to protect 
> themselves against transcoders.
>> You are telling me you have a big business problem and won't write two
>> lines of code to fix it? Well, it's up to you I guess. I think this
>> document is aimed at people who want to find practical ways to
>> actually solve the problem.
> I think the problem is that arrogance cannot be allowed to win.
> Luca
Received on Wednesday, 6 August 2008 09:08:13 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:09:10 UTC