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 :-)