O que significam os diferentes readystates em XMLHttpRequest e como posso usá-los?

XMLHttpRequesttem 5 readyStates, e só uso 1 deles (o último 4). Para que servem os outros e em que aplicações práticas posso