• Home
  • Personal
  • Tech
  • Politics
  • Photography
  • Maintenance pages status codes and Lighttpd

    January 10th, 2007

    I’ve noticed a few very broken maintenance page Lighttpd config examples around, including the one on the mod_magnet documentation page. They all manage to display the maintenance page ok, but they return a HTTP 200 status code to the client, rather than the more appropriate HTTP 503 code.

    As with all 500 status codes, the 503 code is an error code but it signifies a temporary error. The client should try again later (in fact you can specify how much later using the Retry-After header).

    A 200 code tells the client everything is normal and OK. So the user gets your nice maintenance page telling them of a temporary outage, whereas their browser gets told that everything is fine. Now this might not be a problem for a user, but if the client is a search engine or a caching proxy then it will assume the maintenance page is the new valid content for the request.

    If the Google crawler hits your site when you have the maintenance page up, it will update its search index with your “we’re down for now” message, rather than your cash prizes blog content. Your page rank will drop, your fat Adsense cheque will diminish and you’ll have to go back to your regular nine to five job in the city with people you don’t like in clothes you hate wearing.

    So, as you can see, it’s important to return the correct status code. Here’s how to do it with Lighty and mod_magnet:

    Read the rest of this entry »

    Tags: deployment, error, google, http, lighttpd, lua, mod_magnet

    Posted in GNU/Linux, Networks and Firewalls, Tech | 1 Comment »

  • Referrer Securer

    August 16th, 2006

    Did you know that Firefox (and Epiphany) don’t send referrers when following a link from an SSL encrypted site? The target site cannot tell whether you clicked a link or typed the url in directly.

    I don’t know about other browsers, but this seems like a sane behaviour.

    Tags: browser, click, epiphany, firefox, http, https, link, privacy, Security, ssl

    Posted in Security, Tech | 1 Comment »

  • Lighttpd and Ruby on Rails: Secure and Fast Downloading

    March 16th, 2006

    When controlling access to files on a webserver developers often use the web application itself as a file server. The request comes in, the script checks for some session authentication variable or something, then streams the file from disk (hopefully from outside the webroot) to the browser.

    The problem with this from a performance standpoint is that a thread/process of the web application has to be running for the entire duration of the download. With a busy webserver serving many concurrent downloads, this is an immense overhead. The web server itself should be orders of magnitude faster at serving files directly than via a web application, but you can’t just stick the files in a different directory and hope nobody finds the secret urls. The new web server on the block, Lighttpd, has some clever solutions for this problem.
    Read the rest of this entry »

    Tags: http, lighttpd, performance, Security

    Posted in Ruby on Rails, Tech | 3 Comments »

  • John Leach

    • John Leach is a human being living in Leeds, UK.
  • Twitter

    • John ooh, I bug I reported in libvirt in Ubuntu Hardy in May 2008 just got into hardy-proposed! The system works! http://is.gd/aJzU7 10 hrs ago
    • More twitter updates →
  • Author Stuff

    • Brightbox Rails Hosting
    • Compost This
    • ELER Web Comic
    • New World Odour
    • News Sniffer
    • Photography
    • Profile and History
    • Recycle This
    • The Gillroyd Parade
    • Things to do today
    • Website
  • Friends

    • Caius Durling
    • Deb Bassett
    • Gianni Tedesco
    • Ian Higgins
    • Louisa Parry
    • Rahoul Baruah
    • Sleepy Kev
    • Tim Waters
    • Tom Hall
  • Stuff

    • ifup
    • Media Lens
    • Mia Bambina
    • News from nowhere
  • Meta

    • Log in
    • Entries RSS
    • Comments RSS
  • Search

Creative Commons License The text of this blog is licensed under the Creative Commons BY-ND license