This depends entirely on your web server. Your webserver is responsible for routing URL paths to the actual content to display. However, if you just have static HTML files (professional websites tend to have HTML templates in some templating language that gets filled in with data from databases and other sources using some server-side programming language and a templating engine), most web servers will, using the default configuration, route a subpath to the "index.html" file in a directory of the same name as the path. However, this is something that does vary from web server to web server and from configuration to configuration.
In other words, for a simple website, this will usually suffice:
website_folder/
index.html <- this is the homepage
faq/
index.html <- this is served from "/faq" and from "/faq/index.html"
contact/
index.html <- this is served from "/contact" and "/contact/index.html"
However, for a professional website, you'll find something like this to be more common:
website_folder/
templates/
homepage.tpl <- an HTML template in some templating system.
faq.tpl Examples of templating engines include Jinja2,
contact.tpl Django, CTemplate, though there are many, many others
static/
config/
lib/
src/
...
Where the webserver program (in this case I'm assuming it's under "src", but the exact organization of the code varies widely from one company to another or from one project to another) registers handlers for these different paths and the handlers are programmed to fill the corresponding templates.