목차

TL; DR

  1. 웹 서버는 변하지 않는 정적 콘텐츠(HTML, CSS, JS, 이미지, 동영상 등)를 담당한다.
  2. WAS는 사용자의 요청에 따라 변하는 동적 페이지를 담당한다. (CGI의 단점을 보완한 것이 WAS)
  3. 웹 서버와 WAS를 나눠서 사용하는 이유는 서버의 부담을 분산시키기 위함이다.
  4. 프로세스는 프로그램을 실행한 것, 스레드는 프로세스 안에서 작업을 수행하는 주체들

웹 서버란?

클라이언트(브라우저)에서 특정 사이트에 접속하는 과정을 그림으로 표현하면 아래와 같다.

출처: 웹서버 구조 [velog]

출처: 웹서버 구조 [velog]

웹 서버는 하드웨어와 소프트웨어 측면에서 정의를 다르게 할 수 있다.

여기서는 소프트웨어 웹 서버에 초점을 두고자 한다.

일반적으로 웹 서버는 HTTP 통신의 경우 80번 포트를, HTTPS 통신의 경우 443번 포트를 사용한다.

대표적인 웹 서버에는 Apache Server, Lighttpd, NGINX 등이 있다.

웹 서버를 이해하기 위해서는 정적 페이지와 동적 페이지에 대한 이해가 필요하다.

정적 페이지와 동적 페이지

정적 페이지(static page)는 항상 동일한 내용을 반환하는 페이지를 의미한다. HTML, CSS, JS, 이미지 파일 등이 해당한다.

동적 페이지(dynamic page)는 사용자의 입력에 따라 내용이 변경되는 페이지를 의미한다.