A volte puoi saperlo, a volte non puoi.
Se l'HTML è generato sul lato client, allora puoi facilmente dire quale lingua guardi la sorgente nel tuo browser web. Queste lingue includono: ruby on rails, javascript, java, ecc. Sul lato client, la fonte è aperta all'utente e deve essere onesta su quale tecnologia sia.
Se l'HTML è generato sul lato server, potresti non sapere quale linguaggio di programmazione lo ha generato. Queste lingue includono: PHP, C ++ e molte altre lingue. Sul lato server, per quanti modi si può pensare di indovinare quale linguaggio sia, ci sono altrettanti modi in cui la tecnologia può nascondersi.
Supponiamo che tu sia un amministratore web che vuole nascondere la tecnologia lato server. Scegli una delle tecniche elencate in un'altra domanda per tentare di identificare la lingua. Ad esempio, l'estensione * .php per un file. Ora, configura il tuo server web per eseguire il codice C da un file con estensione * .php. I tuoi utenti non avranno modo di vedere la fonte (dal momento che entrambi i linguaggi sono ugualmente in grado di produrre lo stesso output, grazie alla completezza di Turing), ma saranno indotti in errore nel pensare di usare PHP.
Perché qualcuno dovrebbe voler offuscare la scelta della tecnologia lato server? Perché le lingue CGI hanno varie vulnerabilità che sono più facili da scegliere se gli utenti finali sanno quale di quelle lingue stai usando. Ingannare gli utenti su quali tecnologie sul lato server si sta utilizzando è una misura di sicurezza molto ragionevole.