#Apache #Nginx #HTTP #클라이언트(Client) #서버(Server)
웹 서버란?
- 웹 서버는 소프트웨어(Software)를 보통 말하지만, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말한다.
- 웹 서버의 가장 중요한 기능은 클라이언트(Client)가 요청하는 HTML 문서나 각종 리소스(Resource)를 전달하는 것이다.
- 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적(static)인 데이터(HTML, CSS, JavaScript) 이거나 동적인 결과가 될 수 있다.
- 클라이언트와 웹 서버 간에는 HTTP(HyperText Transfer Protocol)로 통신을 한다. HTTP는 인터넷상의 데이터를 주고받기 위한 프로토콜 즉 규약을 의미함.
- 웹 브라우저는 웹 서버로부터 전송받은 HTML 문서를 읽어들인 후에 해석을 한다. 각 이미지, CSS, JavaScript 같은 리소스에서 URL을 추출해내고, 웹서버에 동시에 여러 개의 리소스를 요청하게 된다. 웹 서버는 동시에 요청한 여러 개의 요청을 받아들여 그 결과를 브라우저에게 전송하고, 웹 브라우저는 아까 해석했던 HTML 문서와 새롭게 읽어들인 응답의 결과를 하나로 합쳐서 결과를 화면에 그린다.
웹 서버 소프트웨어의 종류
- 가장 많이 사용하는 웹 서버는 Apache, Nginx, Microsoft IIS, 구글 웹서버
- Apache 웹 서버는 Apache Software Foundation에서 개발한 웹서버로 오픈소스 소프트웨어(Open-source Software)이며, 거의 대부분 운영체제에서 설치 및 사용을 할 수 있다.
- Nginx는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 서버이며 Apache웹서버와 마찬가지로 오픈소스 소프트웨어이다.
생각해보기
- 네이버, 구글과 같은 검색을 할 수 있는 사이트에서는 검색어를 입력하면 검색어가 포함된 웹 페이지 목록을 보여준다. 네이버와 구글은 검색어가 포함된 웹페이지를 어떻게 알 수 있었을까?