When the Servlet API was released, the majority of the implementing containers used one thread per request. This meant a thread was blocked until the request processing had finished and the response was sent to the client.
However, in those early days, there weren’t as many devices connected to the Internet as today. Because of the increased number of devices, the number of HTTP requests being ...