서버(server)는 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터를 의미한다.
말 그대로 클라이언트(사용자)에게 데이터나 리소스를 서빙하는 컴퓨터라고 보면 된다.
흔히 영화에서 서버를 해킹한다고 하면 청소부로 위장해서 서버실에 들어간 다음, USB를 꼽고 서버를 해킹하는 장면이 나온다. 이런 서버에 대해서 오늘 파해쳐보려고 한다.
나는 IT공부를 하기전에는 서버라는 것이 컴퓨터라고는 생각을 못했다 왜냐하면 집에서 게임을 할 때 서버점검이라는 단어를 많이 봤다. 그래서 아, 서버는 서비스를 제공하는 홈페이지 같은건가보다.
라고만 생각했었다.
서버로 이용되는 컴퓨터는 손바닥만한 컴퓨터에서 집채만한 컴퓨터까지 정말다양하다.
이러한 크기는 제공되는 서비스의 양에서 달라지는데흔히 문서를 조회하는 페이지(위키, DOCs) 같은 홈페이지를 운영하는건 상대적으로 운영하는 데이터양이 적어서 그렇게 큰 컴퓨터가 필요하지 않다.
하지만
구글, 네이버와 같은 많은 사용자들의 서비스와 데이터를 운영해야하는 대기업의 서버는 많은 양의 데이터를 처리해야 하기때문에 대용량의 서버가 필요하다
대용량 파일 전송을 위한 프로토콜이다.
오늘 많이 파해쳐 볼 서버이다.
대표적으로 Apache2, lighttpd, NGINX 등이 있다.
클라이언트로부터 HTTP 요청을 받아들이고, HTML문서와 같은 웹페이지를 있는 그대로 반환하는 서버다.
이 웹페이지에는 그림, CSS, JS를 포함하며, 이런 파일들을 정적 파일이라고 부르고 이런 파일을 브라우저에 그대로 전달하는 역할을 해서 정적 웹 서버 라고 불린다.
웹서버와 마찬가지로 웹페이지를 전달하는 역할을 하기도 한다. 하지만 WAS의 핵심 역할은 웹페이지를 구성하는 동적인 컨텐츠를 생성하거나 업데이트 하는 비즈니스 로직을 수행할 수 있게 한다.
웹애플리케이션의 특징
웹페이지를 구성하는 동적인 요소를 생성하는 서버 사이드 코드가 구동될 수 있는 프로그래밍 언어직 런타임 혹은 스프트웨어 엔진 제공.
웹 애플리케이션 서버의 클라이언트는 애플리케이션 그 자체가 될 수도 있고, 웹 서버나 다른 웹 애플리케이션 서버, 데이터베이스 서버가 될 수도 있다. 따라서 웹 애플리케이션 서버를 사용한다면 경우에 따라 다양한 형태의 아키텍처가 생성될 수 있다.
데이터베이스 서버는 사용자가 데이터베이스에 연결할 수 있도록 해준다. 데이터베이스는 사용자 정보나 사진, 동영상 등에 대한 정보를 담고 있는 서버입니다. 데이터베이스 서버의 종류로는 MySQL, MongoDB, Oracle 등 여러 종류로 또 나뉘어진다.
프록시 서버는 리소스를 요청하는 클라이언트와 응답으로 리소스를 전달하는 서버 사이에 중계 역할을 하는 서버를 의미한다. 어디에 위치하느냐에 따라 포워드 프록시와 리버스 프록시로 나누어지며, 이러한 프록시 서버가 수행하는 기능으로는 보안, 캐시, 로드밸런싱 등이 있다.
웹서버는 보통 HTTP요청과 응답만을 처리하고 클라이언트와 웹서버의 상호작용이 일어난다.
WAS는 데이터를 동적으로 처리하여 제공하기 위해 만들어진 서버. 동적으로 데이터를 처리하기 위해 DB조회, 여러개의 트랜잭션관리, 비지니스 로직 처리등의 기능이 요구됨.