고성능 웹서버는 수천 개의 커넥션을 동시에 열 수 있또록 지원한다. 웹 서버 아키텍처에 따라 요청을 처리하는 방식도 달라진다.

단일 스레드 웹서버

단일 스레드 웹서버는 한 번에 하나의 요청을 처리한다. 트랙젝션이 완료되면 다음 요청이 처리된다.

멀티 프로세스와 멀티 스레드 웹서버

동시에 여러 요청을 처리하기 위해 여러 개의 프로세스 혹은 고효율 스레드를 할당한다. 프로세스와 스레드는 요청이 들어올때 마다 생성될 수도 있고, 미리 생성될 수도 있다 (Worker pool)

하지만 프로세스와 스레드는 자원이기 때문에 너무 많은 요청을 처리하려고 할 경우 메모리와 CPU 리소스를 소비하게 된다.

다중 I/O 서버

모든 커넥션은 동시에 그 활동을 감시당한다. 커넥션의 상태가 바뀌면(readable / writable / error) 그 커넥션에 대한 처리를 한다. 그 처리가 완료되면 다시 그러한 작업을 반복한다. 유휴 상태의 커넥션에 매여있지 않기 때문에 리소스 낭비를 줄일 수 있다.

다중 멀티스레드 웹서버

여러 CPU가 존재할 경우 멀티스레드와 멀티플랙싱을 결합한다.