Request handling
Instead of jumping straight into the alphabet soup of HTTP, CGI (Common Gateway Interface), WSGI (Web Server Gateway Interface), and so on, we will examine the entire problem of request handling from where all it started. The basic design goal of the Web was sharing information in the form of documents. So, all in all, it was a document-sharing system, where each document had a unique URL like a unique path for each file (ignoring links and shortcuts for the sake of discussion) on a file system. Each document could be linked to other documents. This was the simple HTTP Web.
The initial Web was simple and consisted of two pair of programs. One piece of program, which was called the client (nowadays, it is mostly in the form of a modern desktop or a mobile browser), would request a document by opening a socket for a given server and on a specific port using a very specific request format like this as textual data:
Host: www.mit.edu GET /publications/quantum/computing/future...