You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "William A. Rowe Jr." <wr...@rowe-clan.net> on 2011/12/12 22:25:19 UTC

Re: Effective IP address / real IP address

I have a frustrating update, which we need to take into consideration for
the whole remote_ip-related resolution.  From the httpd-ng workgroup...

On 09/12/2011, at 9:27 AM, William A. Rowe Jr. wrote to http-ng;

> On 12/8/2011 12:33 PM, Karl Dubost wrote:
>> Le 8 déc. 2011 à 14:55, Larry Masinter a écrit :
>>> I think Karl's rewording is worse. The point I really wanted to make was that
documents that follow HTTP terminology often make the mistake of assuming a "user agent"
has a "user".
>> Ahah! I didn't have the initial context. :)
>>
>>> But if "client" means the same thing as "user agent", then why have a separate term?
>>
>> I would rather prefer client everywhere too.
>>
>> 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.
>> 	— http://en.wikipedia.org/wiki/User_agent
> We just had this discussion at the ASF httpd project.
>
> In a proxy chain, each proxy server is a user agent itself reaching
> out to the next server in the chain.  It is possible to describe
> these each as clients, but when you start looking at end-to-end
> definitions, "client" suggests the originating user agent (app, or
> browser, or service).
>
> So UA and client do have distinct connotations.

Mark Nottingham <mn...@mnot.net> response to my observation below;

That's exactly backwards from how we have always used the terms in HTTP -

1945:

>    client
>
>        An application program that establishes connections for the
>        purpose of sending requests.
>
>    user agent
>
>        The client which initiates a request. These are often browsers,
>        editors, spiders (web-traversing robots), or other end user
>        tools.

2068:

>    client
>       A program that establishes connections for the purpose of sending
>       requests.
>
>    user agent
>       The client which initiates a request. These are often browsers,
>       editors, spiders (web-traversing robots), or other end user tools.

2616:

>    client
>       A program that establishes connections for the purpose of sending
>       requests.
>
>    user agent
>       The client which initiates a request. These are often browsers,
>       editors, spiders (web-traversing robots), or other end user tools.



Re: Effective IP address / real IP address

Posted by "William A. Rowe Jr." <wr...@rowe-clan.net>.
On 12/13/2011 9:06 PM, Roy T. Fielding wrote:
> On Dec 13, 2011, at 5:33 PM, Graham Leggett wrote:
>> On 14 Dec 2011, at 12:50 AM, Graham Leggett wrote:
>>> On 12 Dec 2011, at 11:25 PM, William A. Rowe Jr. wrote:
>>>
>>>> I have a frustrating update, which we need to take into consideration for
>>>> the whole remote_ip-related resolution.  From the httpd-ng workgroup...
>>>
>>> This makes sense, we're an HTTP server, lets stick to RFC related terms.
>>
>> Done in r 1214022.
> 
> Huh, I was wondring what Bill was talking about ... I couldn't remember any
> discussion that had reversed the meaning, and now I know why.
> 
> The IP address received by the server interface when we are acting as a
> reverse proxy is not necessarily the IP address of the user agent.  It could
> just as easily be the IP address of an ISP proxy, a corporate firewall,
> or a dozen other client-side intermediaries that are not the user agent.
> Hence, it is just a client.

That is EXACTLY our understanding.  The immediate connection comes from
"a client".  Not the end node asking for the data, but our immediate client
which is a BigIP balancer or a telco cell browser proxy or anything else
which you mention.

"the user agent" is not "just a client", but the originator of the request.

Are we on the same page now?

Re: Effective IP address / real IP address

Posted by "Roy T. Fielding" <fi...@gbiv.com>.
On Dec 13, 2011, at 5:33 PM, Graham Leggett wrote:
> On 14 Dec 2011, at 12:50 AM, Graham Leggett wrote:
>> On 12 Dec 2011, at 11:25 PM, William A. Rowe Jr. wrote:
>> 
>>> I have a frustrating update, which we need to take into consideration for
>>> the whole remote_ip-related resolution.  From the httpd-ng workgroup...
>> 
>> This makes sense, we're an HTTP server, lets stick to RFC related terms.
> 
> Done in r 1214022.

Huh, I was wondring what Bill was talking about ... I couldn't remember any
discussion that had reversed the meaning, and now I know why.

The IP address received by the server interface when we are acting as a
reverse proxy is not necessarily the IP address of the user agent.  It could
just as easily be the IP address of an ISP proxy, a corporate firewall,
or a dozen other client-side intermediaries that are not the user agent.
Hence, it is just a client.

I can hear Graham screaming now.

No worries -- I don't care what the variable is called in request_rec
as long as the intent is clear enough, so feel free to leave it as is.

....Roy

Re: Effective IP address / real IP address

Posted by Graham Leggett <mi...@sharp.fm>.
On 14 Dec 2011, at 12:50 AM, Graham Leggett wrote:

> On 12 Dec 2011, at 11:25 PM, William A. Rowe Jr. wrote:
> 
>> I have a frustrating update, which we need to take into consideration for
>> the whole remote_ip-related resolution.  From the httpd-ng workgroup...
> 
> This makes sense, we're an HTTP server, lets stick to RFC related terms.

Done in r 1214022.

Regards,
Graham
--


Re: Effective IP address / real IP address

Posted by Graham Leggett <mi...@sharp.fm>.
On 12 Dec 2011, at 11:25 PM, William A. Rowe Jr. wrote:

> I have a frustrating update, which we need to take into consideration for
> the whole remote_ip-related resolution.  From the httpd-ng workgroup...

This makes sense, we're an HTTP server, lets stick to RFC related terms.

> Mark Nottingham <mn...@mnot.net> response to my observation below;
> 
> That's exactly backwards from how we have always used the terms in HTTP -
> 
> 1945:
> 
>>   client
>> 
>>       An application program that establishes connections for the
>>       purpose of sending requests.
>> 
>>   user agent
>> 
>>       The client which initiates a request. These are often browsers,
>>       editors, spiders (web-traversing robots), or other end user
>>       tools.
> 
> 2068:
> 
>>   client
>>      A program that establishes connections for the purpose of sending
>>      requests.
>> 
>>   user agent
>>      The client which initiates a request. These are often browsers,
>>      editors, spiders (web-traversing robots), or other end user tools.
> 
> 2616:
> 
>>   client
>>      A program that establishes connections for the purpose of sending
>>      requests.
>> 
>>   user agent
>>      The client which initiates a request. These are often browsers,
>>      editors, spiders (web-traversing robots), or other end user tools.

+1.

Regards,
Graham
--