Ca vient de la gestion des caches. Quand un serveur Web renvoie une page HTML, il peut demander au navigateur (et au proxy) de ne pas "cacher" le document. Cacher, ça veut dire enregistrer sur le disque dur le fichier. Ca sert pour pouvoir consulter la page en off-line, mais surtout pour éviter de trop charger le réseau et le serveur Web avec des requêtes inutiles : si la version qu'on a sur le disque dur est la toute dernière, ça sert à rien de la renvoyer complètement de nouveau.
Les pages pour lesquels on ne peut pas voir le source sont des pages pour lesquelles le serveur Web a demandé de ne pas les enregistrer sur le disque pour des raisons de confidentialité entre autre. Sur certains navigateurs (IE 5 en particulier), cela signifie aussi qu'on ne peut pas lire le code, même après affichage.
Comment faire dans ce cas-là, alors, pour récupérer le code ? Très simple : faire la requête HTTP à la main !! Par exemple, pour lire le code de la page d'entrée du site http://www.gsm3000.com/, il suffit d'ouvrir un telnet sur le port 80 pour la machine www.gsm3000.com et de taper ([CR] signifie "appuyer sur la touche entrée" ) :
GET http://www.gsm3000.com/ HTTP/1.0[CR]
Host: www.gsm3000.com[CR]
[CR]
Le dernier saut de ligne est indispensable.
Voila !!!