Je vais aller un peu plus loin que Stopher, dans le style de facebook c'est bien beau mais c'est loin d'être simple! Facebook utilise une sorte de double dispatch pour le rendu de ses pages.
En effet quand on navigue sur le site, on peut à tout moment recharger la page ou transmettre le lien et cela peut paraître simple mais je connais très peu de site qui ont réussis ça aussi bien que facebook.
La petite astuce c'est de récupérer l'url en javascript, pour le dispatch ajax les informations utiles sont disponible après l'ancre ( # ), au passage la modification d'une ancre ne nécessite pas de rafraichissement de la page et c'est bien pour ça qu'on lutilise dans ce genre de cas.
Les liens sont réécrits en direct lorsque l'on clique dessus, pour garder une compatibilité avec le javascript désactivé
Exemple :
http://www.facebook.com/home.php?ref=logo#profile
Etape 1 : Le php charge la partie commune à toutes les pages du site, donc bandeau en haut..
Etape 2 : Le javascript s'occupe d'appeler en ajax les autres parties du site en prenant en compte tout d'abord le contenu après l'ancre et ensuite avant l'ancre ( 'lurl en dur )
Enfin c'est en gros le principe si j'ai pas été clair faut le dire

Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }