Ah, that brings me back. Yes, the first web applications required writing their own web server. the former, for example, CERN HTTPd , where there are fairly simple programs: they listened to the port for basic connection requests, parsed the file path and returned a static file.
Pretty soon after that, people figured out how to fork / execute a program from the HTTP daemon that generated the HTML file, instead of serving it from a static file. Some of them were simple C programs; Perl has become popular. But something like a banking system (I worked on one of them) deployed the program when the session started, and then connected to the existing back end via something like CICS to get the data, then generate the output using something like fprintf to send text to socket.
Application servers really arrived when people realized that they were writing repeating snippets of code that were supposed to talk to the “data layer” in the background or the “level of stability” and the front-end web server.
source share