Client/server
HTTP is a client/server system. The browser is a 'client'. It connects to a 'server' to obtain the necessary data. The term 'client' is frequently used; in this context, it's interchangeable with 'browser'.
Dynamic content
The server doesn't have to simply send a file in response to user requests. It can run other software, make calculations, and so on. As long as it sends an HTTP response, it doesn't matter what happened in creating that response.
For example, a request for '/test.cgi?name=sam' might result in the Web server actually running a separate program called test.cgi with the parameter 'name=sam', and sending back the results of that program to the client browser.
One server, multiple sites
A single Web server can handle many Web sites, and you can make many computer address names point to the same name (e.g. leafdigital.com is actually the same computer as gwind.pair.com). The server knows which site is being requested because HTTP requests contain, as one of the headers, the named address. So it can send out the appropriate response file.