Re: Issue 166: clarify term "User Agent" and resolve inconsistencies with W3C specs


"user agent" and "client" are definitely distinct in the documents.

A client is one party to client/server relationship, scoped by a connection. Proxies are clients. Gateways are clients. And, User Agents are clients.

A user agent is a special kind of client; it's the one that originated the client.

Browsers are user agents. So are spiders, etc.

I think you may be getting hung up on "user", always mapping that to a live human in front of a keyboard at the time that the request is made. This isn't necessarily the case -- sometimes the live human at the keyboard does their keyboarding at some other time.

This is true even when the UA *is* a browser; consider all of the automatic updates and background checks that browsers tend to do these days.

As I think Julian has asked, it would be helpful if you could identify *specific* parts of the documents where it's important to distinguish between at-the-keyboard-now and at-the-keyboard-sometime.


On 16/12/2011, at 9:47 AM, Larry Masinter wrote:

> I think there was originally a distinction between "User Agent" and "Client" but that there is now broad use of "User Agent" for Client in HTTP, to the extent that "User Agent" is often taken to mean "HTTP client". 
> I'm not sure this broad misuse extends to other protocols.
> Agent (in computing) is a generic term that generally refers to software that does work on behalf of a person or another agent.
> In the IETF (since IETF focused on network protocols), an agent was software at one of the endpoints of communication.
> A "client" is an agent that acts as the initiator of a protocol transaction in a client-server relationship. (The 'server' is an agent that runs autonomously, and the 'client' invokes those actions.)
> A "user agent" then is an agent with a "user", and in particular, an "end user".
> I don't think the misuse of 'user agent' to cover clients of other client-server protocols extends outside HTTP... does it?
> Unfortunately, this use continues even in the latest HTTP documents.
> What wikipedia says: 
> 	In computing, a user agent is a client application 
> 	implementing a network protocol used in communications 
> 	within a client-server distributed computing system.
> 	-
> I think this is wrong.  In HTTP (currently) the term "user agent" was misused for "client" because in the early implementations of the web, the only clients were user agents, and by the time anyone imagined other clients than those that were user-agents, the "user-agent:" header was fixed and it made no sense to rename it.

Mark Nottingham

Received on Thursday, 15 December 2011 23:04:33 UTC