title: How do web servers process multiple connections?
body: <p>I'm new to web development and am trying to understand the way web servers handle multiple connections/requests. I understand that incoming HTTP requests get handled via sockets. A new request has a unique socket (SRC-IP SRC-PORT DEST-IP DEST-PORT). But what happens after a socket is created?</p>
  <ol>
  <li>How is the HTTP response prepared and sent for all the incoming requests?</li>
  <li>Is this process handled in synchronous or asynchronous manner?</li>
  <li>Can web servers be multi-threaded? Or are there multiple processes that get created? Or a combination of both?</li>
  </ol>