웹 서버는 웹 서버 소프트웨어를 말하기도 하고, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말하기도 한다.
웹 서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML 문서나 각종 리소스를 전달하는 것이다. 여기서 클라이언트란 웹 브라우저를 말한다.
웹 브라우저가 요청하는 리소스는 컴퓨터에 저장되어 있는 정적 데이터나 동적 데이터가 될 수 있다.
정적 데이터는 이미지, HTML 파일, CSS 파일, JavaScript 파일 처럼 컴퓨터에 저장되어 있는 파일을 의미한다.
동적 데이터는 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물을 말한다.
웹 브라우저와 서버 간의 통신
- 웹 브라우저는 웹 서버에 접속을 하고 해당 주소에서 기본으로 보이는 HTML 문서를 요청한다.
- 그러면 웹 서버는 클라이언트가 요청한 HTML문서를 웹 브라우저에게 전송한다.
- 웹 브라우저는 웹 서버로부터 받은 HTML 문서를 읽어들인 후 해석한다.
- HTML 문서를 보여주기 위해서 필요한 css, JavaScript 같은 리소스의 URL을 추출하고 웹 서버에게 동시에 다수의 리소스를 요청한다.
- 웹 서버는 웹 브라우저가 요청한 다수의 리소스에 대한 결과(응답)를 웹 브라우저에게 전송한다.
- 웹 브라우저는 HTML 문서와 읽어들인 여러개의 응답을 하나로 합쳐서 화면에 보이게 한다.(하나로 합쳐서 보여주는 작업을 렌더링한다 고 말한다.)
웹 서버 소프트웨어
Apache, Nginx, Microsoft, Google 등이 있다.
전세계적으로 Apache의 사용량이 가장 많다. 거의 대부분의 운영체제에서 설치하고 사용이 가능하다.
Nginx는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 서버이다.
'개발 관련 지식 > 웹 프로그래밍' 카테고리의 다른 글
멀티 쓰레드 (0) | 2022.02.06 |
---|---|
동기 비동기, 싱글스레드 멀티스레드 (0) | 2021.01.29 |
WAS (0) | 2020.06.09 |
웹 프론트엔드, 백엔드 (0) | 2020.06.04 |
HTTP 프로토콜 (0) | 2020.06.04 |