Solo una piccola aggiunta alla risposta di figlio89:

il div footer si trova in basso a destra perchè nel foglio di stile ha le seguenti impostazioni (oltre a z-index:100):

position:absolute;
right: 0px;
bottom: 0px;

in questo modo (visto che la posizione è definita come assoluta) il div viene ancorato in basso a destra.

Per l'header la cosa è più semplice perché essendo il primo viene comunque posizionato in alto a sinistra, e viene impostato

padding: 0px;
margin: 0px;

per evitare spaziatura indesiderata tra il contenuto del div e i bordi alto e sinistro della finestra.

Più in generale, per far si che il div header stia in alto a sinistra indipendentemente dal fatto che appaia nell'html come primo elemento del body, è opportuno utilizzare, analogamente a quanto fatto per il footer, le proprietà:

position:absolute;
top: 0px;
left: 0px;

Spero che la mia aggiunta non risulti pedante :-)