You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Marc Slemko <ma...@znep.com> on 1999/11/20 07:43:29 UTC

lame http implementation of the day

Mildly offtopic, but HTTP standards compliance is a big part of Apache.
 For anyone interested:

You may well have heard about akamai.  What they do is provide a bunch
of servers, distributed across the internet.  Through the use of DNS load
balancing they claim to direct clients to a server that is close to
them.  To do this, they make their servers act as pseudo-proxies for the
real origin server, even though the client knows nothing about the proxy.
The idea being that sites can change their image URLs to refer to one of
these DNS load balanced names, and magically gain from the extra performance
their clients get.

So, in essence, they claim to be the wonderful caching solution of
the future.

The only little problem?  They don't support If-Modified-Since!

marcs@alive:/tmp$ telnet a1656.g.akamaitech.net 80
Trying 216.32.119.12...
Connected to a1656.g.akamaitech.net.
Escape character is '^]'.
GET /7/1656/831/0001/images.go2net.com/go2net/ads/199910/0639.gif HTTP/1.0
If-Modified-Since: Wed, 27 Oct 1999 10:57:33 GMT; length=2199
Connection: Keep-Alive
User-Agent: Mozilla/4.7 [en] (X11; U; FreeBSD 3.3-STABLE i386)
Host: a1656.g.akamaitech.net
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png
Accept-Encoding: gzip
Accept-Language: en  Accept-Charset: iso-8859-1,*,utf-8

HTTP/1.0 200 OK
Server: Zeus/3.1
Date: Tue, 02 Nov 1999 12:56:49 GMT
Content-Length: 2199
Content-Type: image/gif
Last-Modified: Wed, 27 Oct 1999 17:14:44 GMT
Connection: keep-alive

[...body of response...]


Gee, a good way for them to drive up their bytes served and charge more, 
without the trick being reflected in any of the performance metrics they 
offer to show how good their service is, since the metrics don't do IMS
requests.

This has been your lame-ass HTTP implementation of the day message.  Stay
tuned for the next installment of "what not to do".


Re: lame http implementation of the day

Posted by Ben Laurie <be...@algroup.co.uk>.
Marc Slemko wrote:
> The only little problem?  They don't support If-Modified-Since!

Am I being terminally dim?

> If-Modified-Since: Wed, 27 Oct 1999 10:57:33 GMT; length=2199

is, err, before...

> Last-Modified: Wed, 27 Oct 1999 17:14:44 GMT

so, what's your beef?

Cheers,

Ben.

--
http://www.apache-ssl.org/ben.html

"My grandfather once told me that there are two kinds of people: those
who work and those who take the credit. He told me to try to be in the
first group; there was less competition there."
     - Indira Gandhi

Re: lame http implementation of the day

Posted by Spidaman The Defenestrator <sp...@salon.com>.
I thought "Age" and "X-Cache" were characteristic of squids.  What else in
the response says it's a squid?  

FWIW, I talked to some folks @ Akamai.  Their DNS-based load balancing
sounds about as good as anybody's (i.e. f5labs, etc) but by having a large
and dispersed feedback-driven farm, they can make their reponses highly
adaptive (not necessarily most optimal) and therefore _better_ than
someone doing DNS load balancing just within their own networks. The farm
consists of Linux boxes (I'd have chosen FreeBSD, but then I'm not market
capped @ 17 billion, so what do I know). Nonetheless, as they enhance
their DNS adaptivity, I think they have a strong product.

But on the goofy http implementation thread, ever notice Yahoo and other
portals not differentiating HEAD's and GET's?  Must be some economy in
aliasing request methods or something, I dunno.

Meanwhile, back at the ranch...
> Oh, and it looks like they are using a hacked up version of Squid for anyone
> who is interested.

--
Salon Internet 				http://www.salon.com/
  HTTP mechanic, Perl diver, Mebwaster, Some of the above
Ian Kallen <id...@salon.com> / AIM: iankallen / Fax: (415) 354-3326 


Re: lame http implementation of the day

Posted by Marc Slemko <ma...@znep.com>.
On Sat, 20 Nov 1999, Ask Bjoern Hansen wrote:

> On Fri, 19 Nov 1999, Marc Slemko wrote:
> 
> [Akamai]
> > The only little problem?  They don't support If-Modified-Since!
> 
> ValueClick drives quite a bit of traffic that way, so I did of course get
> worried and started to make some documentation to send to them, but it
> works fine for me (I also tested your request, worked fine):
> 
> [ask@impatience ask]$ cat request
> GET /7/1928/128/941241254/st-akamai.valueclick.com/ad.s/a0014250.gif HTTP/1.0
> If-Modified-Since: Fri, 29 Oct 1999 23:54:14 GMT; length=13241
> Connection: Keep-Alive
> User-Agent: Mozilla/4.7 [en] (X11; U;)
> Host: a1928.g.akamaitech.net
> Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png
> Accept-Encoding: gzip
> Accept-Language: en  Accept-Charset: iso-8859-1,*,utf-8
> 
> [ask@impatience ask]$ nc a1928.g.akamaitech.net 80 < request       
> HTTP/1.0 304 Not Modified
> Date: Mon, 01 Nov 1999 08:09:14 GMT
> Content-Type: image/gif
> Last-Modified: Fri, 29 Oct 1999 23:54:14 GMT
> Connection: close

Well, as Ben pointed out, my example case that I posted wasn't quite
valid.  

My tests were confused by the fact that, in some situations, if
you do a IMS HEAD, they send a 200.  The same thing in a GET gives a
redirect.  (gee, that is more efficient; go through a redirect to
send a 2k image?)  In other situations, if you do a IMS HEAD you get
a 200, while the same thing in a GET gives a 304.  This was interacting
with a minor bogon on the origin server that was serving the content that 
had the Last-Modified date on the origin server being sent differently
at different times.

They don't do too well with persistent connections, either.

So, it looks like they are lame but not in ways that will absolutely kill
current clients.  My mistake.  

Oh, and it looks like they are using a hacked up version of Squid for anyone
who is interested.

We now return to your regularly scheduled programming.


Re: lame http implementation of the day

Posted by Ask Bjoern Hansen <as...@valueclick.com>.
On Fri, 19 Nov 1999, Marc Slemko wrote:

[Akamai]
> The only little problem?  They don't support If-Modified-Since!

ValueClick drives quite a bit of traffic that way, so I did of course get
worried and started to make some documentation to send to them, but it
works fine for me (I also tested your request, worked fine):

[ask@impatience ask]$ cat request
GET /7/1928/128/941241254/st-akamai.valueclick.com/ad.s/a0014250.gif HTTP/1.0
If-Modified-Since: Fri, 29 Oct 1999 23:54:14 GMT; length=13241
Connection: Keep-Alive
User-Agent: Mozilla/4.7 [en] (X11; U;)
Host: a1928.g.akamaitech.net
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png
Accept-Encoding: gzip
Accept-Language: en  Accept-Charset: iso-8859-1,*,utf-8

[ask@impatience ask]$ nc a1928.g.akamaitech.net 80 < request       
HTTP/1.0 304 Not Modified
Date: Mon, 01 Nov 1999 08:09:14 GMT
Content-Type: image/gif
Last-Modified: Fri, 29 Oct 1999 23:54:14 GMT
Connection: close


 - ask

-- 
ask bjoern hansen - <http://www.netcetera.dk/~ask/>
more than 60M impressions per day, <http://valueclick.com>