Facebook почти полностью AJAX, и я знаю, что в старых браузерах и IE9 Facebook использует хэш-тег для перезаписи уникальных URL, например ...
http://www.facebook.com/home.php#!/?sk=welcome http://www.facebook.com/home.php#!/?abc123
Однако в Google Chrome и Firefox 4 Facebook использует что-то другое и переписывает в:
http://www.facebook.com/?sk=inbox http://www.facebook.com/home.php?sk=bd
Все полностью в AJAX, изменяя URL, и даже не только что после хеш-тега (который никогда не отправляется на сервер.)
Используется новый API истории HTML5 , в частности метод history.pushState.
history.pushState
Позволяет изменить путь, запрос или фрагмент фрагмента URL.