El asunto que estás preguntando es sencillamente un tema de organización. Puedes organizar un sitio web con carpetas o con archivos. Si lo organizas con carpetas no tienes por qué usar el ".html".
Los ficheros que tienen url que terminan en .html ya sabes como funcionan. Ahora, bien, todas las carpetas que tienes en un sitio web contienen un archivo llamado index.html (o a veces si el servidor soporta otros lenguajes podría ser también algo como index.php). Ese es el archivo que se manda llamar cuando se accede a una carpeta sin indicar nada más... por eso, si quieres que se desaparezca el .html de tus páginas, simplemente tienes que crear una carpeta y poner el index.html dentro.
Por ponerte un ejemplo, un sitio web puede tener una estructura de ficheros y carpetas como este:
example.com
|
|-> index.html
|-> contacto.html
|-> productos
|
|-> index.html
|-> producto2.html
Ante estos archivos, se podrían tener rutas como estas:
- example.com y example.com/index.html te mostrarían el archivo index.html que está en la carpeta raíz.
- example.com/contacto.html te mostrará el archivo contacto.html que hay en la raíz
- example.com/productos y example.com/productos/index.html te mostrará el archivo llamado index.html que hay en la carperta productos.
- example.com/productos/producto2.html te mostrará el archivo llamado producto2.html que hay en la carpeta productos
Eso es todo! espero que haya servido de aclaración.