눈사람의 해킹공부

웹 서버(Web Server)와 WAS(Web Application Server) 본문

웹 서버(Web Server)와 WAS(Web Application Server)

5n0wman 2023. 10. 26. 00:41

웹 서버란 HTTP(Hypertext Transfer Protocol)를 사용하여 웹 브라우저나 웹 클라이언트로부터 요청을 받아 해당 요청에 따른 컨텐츠(HTML 페이지, 이미지, 동영상 등)나 서비스를 제공하는 프로그램입니다. Apache, Nginx, Microsoft IIS 등이 대표적인 웹 서버 소프트웨어입니다.

 

웹 서버는 파일을 전달하는 도구로 생각할 수 있습니다. 예를 들어, 'www.naver.com' 라는 URL주소에 접속한다고 생각해 봅시다. 우리는 네이버 기본화면을 마주할 것입니다. 웹 서버는 파일을 전달한다고 했는데,우리가 생각하는 파일의 이미지인 .word나 .hwp 등과 달리, 우리는 GUI로 이루어진 네이버의 화면을 마주하지만 사실 네이버 페이지의 소스를 열어보면 이것들은 모두 파일임을 알 수 있습니다. 즉, 이미지 파일들을 우리에게 전송해 보여주는 것입니다.

 

웹 서버는 우리에게 정적인 컨텐츠를 제공합니다. 정적인 컨텐츠(static content)는 웹 서비스에서 사용자의 요청이나 입력, 외부 데이터 등의 상황에 따라 변하지 않고 항상 동일한 내용으로 제공되는 컨텐츠를 의미합니다. 예를 들면,

  • HTML 파일: 웹 페이지의 구조와 내용을 정의하는 파일입니다.
  • CSS 파일: 웹 페이지의 디자인과 레이아웃을 정의하는 스타일시트입니다.
  • JavaScript 파일: 웹 페이지에 동적인 기능을 추가하기 위한 스크립트 파일입니다.
  • 이미지 및 미디어 파일: .jpg, .png, .gif, .mp4 등 웹 페이지에서 사용되는 이미지나 미디어 파일입니다.

등이 있습니다.

 

우리가 웹 서버를 구동한다고 했을때 5명의 직원 정보를 담고 있는 파일을 관리한다고 가정해봅시다.  5명의 직원 파일을 보유한다면 변동 사항이 생겨도 쉽게 처리 할 수 있습니다. 반면에, 1000명의 직원 정보를 관리하는 대기업에서 모든 직원 파일에 담긴 부분이 변경된다면 이를 일일이 변경해주는 것은 쉽지 않은 일이 될 것입니다. 이를 위해 우리는 동적인 컨텐츠를 다루는 WAS가 필요합니다.

 

WAS는 "Web Application Server"의 약자로, 웹 애플리케이션과 서버 환경을 연결하는 미들웨어로서의 역할을 합니다. 쉽게 말하면, 사용자의 요청 중 웹 서버만으로 처리하기 어려운 동적인 요청을 처리하는 서버 소프트웨어나 시스템을 의미합니다. 위의 예시를 이어가자면, 모든 직원 파일에 담긴 부분을 변경하려면 DBMS와 연동이 되면 편할 것입니다. 이를 WAS가 가능하게 해줍니다. 또한 WAS는

  1. 동적 페이지 생성: 사용자의 요청에 따라 실시간으로 웹 페이지의 내용을 생성하거나 변경합니다. 예를 들어, 데이터베이스의 데이터를 바탕으로 게시글을 동적으로 생성하는 경우, WAS를 통해 처리됩니다.
  2. 비즈니스 로직 처리: 웹 애플리케이션 내의 비즈니스 로직 (예: 사용자 인증, 데이터 처리, 계산 등)을 수행합니다
  3. 트랜잭션 관리: 여러 데이터베이스 작업을 하나의 트랜잭션으로 묶어 처리하는 기능을 제공합니다.
  4. 세션 관리: 사용자의 세션 정보를 관리하여 사용자별 정보나 상태를 유지할 수 있습니다.

이러한 일들도 처리할 수 있습니다.