¿Qué significan los diferentes readystates en XMLHttpRequest y cómo puedo usarlos?

XMLHttpRequesttiene 5 readyStates, y solo uso 1 de ellos (el último, 4). ¿Para qué sirven los demás y en qué aplicaciones prácticas puedo