You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Brian Behlendorf <br...@organic.com> on 1996/05/15 08:04:47 UTC

HTTP/1.1 (was Re: Paris)

On Tue, 14 May 1996, Roy T. Fielding wrote:
> Oh, BTW, I may have promised that Apache would be the first to
> implement HTTP/1.1.  Exact memory eludes me at the moment. ;-)

Leaving aside Apache as a proxy server, I don't think this'll be all that 
hard to do.  From a quick perusal of the 1.1 proposal of 03/05/96, the 
types of things we need to address before we could carry the 1.1 badge:

1) chunked encoding (both for requests (POST, PUT) and responses)
2) revamped content-negotiation
3) content-ranges, 206 Partial Content, accept-range, etc.
4) TRACE?
5) OPTIONS method
6) Cache-control configurability, max-age or min-fresh
7) pipelining persistant connections? (17.2.2) also, use the new
   persistant connection model, "persist", instead of "keep-alive".
   (23.5.2.5)
8) If-Match (18.26)?  Do we need it if entity tags are optional?

(ha, I see the spec mentions "nowhere.com" in 18.47, too bad that's no 
longer a reference to hyperreal :)

Heh, according to 23.4, the only thing we "need" to do is support the 
Host: header and absolute URI's in requests, which we do.  Are the above 
just "nice" things?  Roy?

A huge amount of work will be the proxy server however - there are lots 
of new conditions to test and pretty headers to send.  All necessary, but 
still quite a chore.  

	Brian


--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
brian@organic.com  |  We're hiring!  http://www.organic.com/Home/Info/Jobs/


Re: HTTP/1.1 (was Re: Paris)

Posted by Brian Behlendorf <br...@organic.com>.
On Tue, 14 May 1996, Alexei Kosut wrote:
> On Tue, 14 May 1996, Brian Behlendorf wrote:
> > > Leaving aside Apache as a proxy server, I don't think this'll be all that 
> > hard to do.  From a quick perusal of the 1.1 proposal of 03/05/96, the 
> > types of things we need to address before we could carry the 1.1 badge:
...
> Nope. I don't know about the March 5 version, but the May 2 version
...

Oops, I must still think I'm in Europe.  I'm looking at the May 3rd draft 
:)

	Brian

> clearly states at the top of section 23.4 that "This section will
> summarize major differences between versions HTTP/1.0 and HTTP/1.1."
> There are a number (139 pages) of minor differences.
> 
> And actually, we don't support the Host header as per the HTTP/1.1
> spec. 1.1 says we need to send a 400 if a request is tagged as
> HTTP/1.1 (what if it's a higher version; the spec doesn't say. Roy?)
> and doesn't have a Host header.
> 
> > A huge amount of work will be the proxy server however - there are lots 
> > of new conditions to test and pretty headers to send.  All necessary, but 
> > still quite a chore.  
> 
> Well, seeing as how the proxy server doesn't seem to work right with
> HTTP/1.0... we should fix that first. Much of the changes in proxy
> behavior are actually quite simple, unless you want to cache things
> that are negotated or authenticated. But you can be a compliant
> HTTP/1.1 caching proxy without doing that. And if you don't want to be
> caching at all... it's very easy. Just add your name to the Via:
> header and send it on. That's (almost) it.
> 
> Of course, I could always be wrong...
> 
> --
> ________________________________________________________________________
> Alexei Kosut <ak...@nueva.pvt.k12.ca.us>      The Apache HTTP Server
> URL: http://www.nueva.pvt.k12.ca.us/~akosut/   http://www.apache.org/
>  
>       "War does not determine who is right, only who is left."
> 
> 
> 
> 

--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
brian@organic.com  |  We're hiring!  http://www.organic.com/Home/Info/Jobs/


Re: HTTP/1.1 (was Re: Paris)

Posted by Alexei Kosut <ak...@nueva.pvt.k12.ca.us>.
On Tue, 14 May 1996, Brian Behlendorf wrote:

> Leaving aside Apache as a proxy server, I don't think this'll be all that 
> hard to do.  From a quick perusal of the 1.1 proposal of 03/05/96, the 
> types of things we need to address before we could carry the 1.1 badge:

Not true. There's a very select set of things, identified in the draft
(the newest one, btw, is dated May 2) by the word "MUST". I sent a
list of everything precisely required by the spec to this list a
couple hours ago, but I don't see it yet... *sigh* If it doesn't show
up by tomorrow, I'll resend it.

> 1) chunked encoding (both for requests (POST, PUT) and responses)

Only need to support it for requests, since it's our choice what we
send in responses.

> 2) revamped content-negotiation

No such entity. HTTP/1.1 has only hooks for it. There's no defenition
in the current spec about what that content negotation should be, only
what it will look like to caches. We can add ourselves a "Vary:
{accept-headers}" to mod_negotation, but that's about it. Everything
else is still in flux. From recent messages on http-wg, it seems that
even the format for entity tags is not fixed yet.

> 3) content-ranges, 206 Partial Content, accept-range, etc.

Not neccessary to call ourselves HTTP/1.1. It's all just "MAY"s and
"SHOULD"s not a "MUST"s.

> 4) TRACE?

Same here.

> 5) OPTIONS method

As well.

> 6) Cache-control configurability, max-age or min-fresh

And again. And actually, both those are client->proxy directives, so
we don't need to worry about them at all.

> 7) pipelining persistant connections? (17.2.2) also, use the new
>    persistant connection model, "persist", instead of "keep-alive".
>    (23.5.2.5)

Again. And actually, we'll pipeline correctly now with Keep-Alive, if
the client wanted to.

> 8) If-Match (18.26)?  Do we need it if entity tags are optional?

No. At least, not how I read the spec. Since we never generate an
entity tag, there is no way a client can ever ask us to match one we
generated. Therefore, we are safe in not supporting If-Match,
If-NoneMatch and all the others. On the other hand, we do need
Unless-Modified-Since, since we send Last-Modified headers.

> (ha, I see the spec mentions "nowhere.com" in 18.47, too bad that's no 
> longer a reference to hyperreal :)
> 
> Heh, according to 23.4, the only thing we "need" to do is support the 
> Host: header and absolute URI's in requests, which we do.  Are the above 
> just "nice" things?  Roy?

Nope. I don't know about the March 5 version, but the May 2 version
clearly states at the top of section 23.4 that "This section will
summarize major differences between versions HTTP/1.0 and HTTP/1.1."
There are a number (139 pages) of minor differences.

And actually, we don't support the Host header as per the HTTP/1.1
spec. 1.1 says we need to send a 400 if a request is tagged as
HTTP/1.1 (what if it's a higher version; the spec doesn't say. Roy?)
and doesn't have a Host header.

> A huge amount of work will be the proxy server however - there are lots 
> of new conditions to test and pretty headers to send.  All necessary, but 
> still quite a chore.  

Well, seeing as how the proxy server doesn't seem to work right with
HTTP/1.0... we should fix that first. Much of the changes in proxy
behavior are actually quite simple, unless you want to cache things
that are negotated or authenticated. But you can be a compliant
HTTP/1.1 caching proxy without doing that. And if you don't want to be
caching at all... it's very easy. Just add your name to the Via:
header and send it on. That's (almost) it.

Of course, I could always be wrong...

--
________________________________________________________________________
Alexei Kosut <ak...@nueva.pvt.k12.ca.us>      The Apache HTTP Server
URL: http://www.nueva.pvt.k12.ca.us/~akosut/   http://www.apache.org/
 
      "War does not determine who is right, only who is left."