Let's start at the beginning.

When you type "davidnbooth.com" into your address bar, the web browser needs to send an HTTP request to the ip address of the server that hosts the website. Because you typed in a domain name, not an IP address, the browser goes through the Domain Name System (DNS) to find the IP address of the server. This website was registered with the DNS using NearlyFreeSpeech.net which also hosts the server.

The DNS redirects the browser's request to the server, which is just a computer running the Apache HTTP Server program. The Apache HTTP Server program is listening for requests on port 80, the HTTP port. It may also listen to port 443 for HTTPS. I have configured the site to redirect all HTTP requests to the internal port 8000. sends a request to a DNS server (Domain Name System). The DNS server then looks up the IP address of the server that hosts the website. The web browser then sends a request to the server, and the server sends back the HTML code for the website. The web browser then renders the HTML code into a website that you can see and interact with.