Co oznaczają różne readystates w XMLHttpRequest i jak mogę ich używać?

XMLHttpRequestma 5 readyStates, a ja używam tylko 1 z nich (ostatniego, 4). Do czego służą pozostałe i w jakich praktycznych zastosowaniach mogę ich