[105047] in North American Network Operators' Group

home help back first fref pref prev next nref lref last post

How not to make an error page (was: OT: www.Amazon.com down?)

daemon@ATHENA.MIT.EDU (Kevin Day)
Fri Jun 6 14:45:23 2008

From: Kevin Day <toasty@dragondata.com>
To: "Lasher, Donn" <DLasher@newedgenetworks.com>
In-Reply-To: <C97F73E15F1F0D48A3AC0C423F8C221AE6F84F@rancor.ad.newedgenetworks.com>
Date: Fri, 6 Jun 2008 13:40:18 -0500
Cc: nanog@nanog.org
Errors-To: nanog-bounces@nanog.org


On Jun 6, 2008, at 1:24 PM, Lasher, Donn wrote:

> Checked, and doublechecked, not just me
>
> www.amazon.com returns:
>
> Http/1.1 Service Unavailable
>
> Anyone have a URL for a network/etc status page, or info on the  
> outage?
> Been that way for a while this morning.
>
> -donn
>
>

Even worse, the page they're displaying is actually a HTTP 200  
response code(OK/no error), with no "Don't cache this" header - which  
means their error page is considered cacheable by some browsers/ 
proxies. So, you may find users who tried to visit Amazon while they  
were down are still seeing it down long after they fix it.

Lesson to high profile websites: add these to your error pages so you  
don't have people complaining you're still down long after you're fixed.

* Don't return a 200 response code. Use 500 or 503. Nothing from 2xx  
or 4xx.
* Add a "Cache-control: no-cache, must-revalidate, max-age=0" header,  
as well as an "Expires: 0" header for good measure.
* If your server is really borked and you can't add headers at all,  
add '<META HTTP-EQUIV="Pragma" CONTENT="no-cache">' to the <head>  
section. That's not as good, but helps at least on the browser end.
* If possible, add a timestamp to the page somewhere (even if it's in  
an HTML comment) so you can troubleshoot with users still seeing the  
error.

-- Kevin



home help back first fref pref prev next nref lref last post