Dev.World/개발상식&언어
[개발상식] 16. 웹 서버란?
_Jbee
2016. 5. 21. 15:46
웹 프로그래밍의 첫번째 특징은 한 대의 컴퓨터에서 처리하지 않는다는 것이다.
어떠한 경우에도 반드시 서버와 클라이언트가 존재한다.
웹 애플리케이션이란 HTTP/HTTPS라는 프로토콜을 통하여 요구된 기능을 제공하는 것이다.
HTTP를 통한 클라이언트의 요청에 대해, 웹 애플리케이션이 반환하는 응답에 의해 제공되는 데이터는
크게 두 가지 종류이다.
하나는 정적 콘텐츠이고, 다른 하나는 동적 콘텐츠이다.
정적 콘텐츠란 누가 언제 요구하더라도 동일한 내용이 반환되는 데이터를 말한다.
HTML, JavaScript, CSS가 기술된 것, 이미지, 등이 포함된다.
이 데이터들은 해당 웹 페이지 및 웹 서비스의 제공자가 사전에 준비해 둔 서버 측에 배치한 것이다.
동적콘텐츠란 누가, 언제, 어떻게 요구했는지에 따라 각각 다른 내용이 반환되는 데이터를 말한다.
웹 서버
정적 콘텐츠인 각종 파일을 클라이언트에 제공하는 역할의 서버이다.
웹 애플리케이션 서버
요청에 대해 프로그램의 출력을 응답으로서 반환하기 위한 서버이다.
역프록시 서버
클라이언트로부터 접속과 요청을 받고 응답을 받환하기 위한 서버이다.
로드밸런싱 : 많은 요청을 여러 애플리케이션 서버에 분산하여 과부하를 피한다
-> 역프록시 서버와 웹 서버로 과부하를 막기가 힘든 문제점을 해결하기 위해
로드 밸런서가 도입되었다. 네트워크 기능과 서버 소프트웨어의 중간과 같은 존재다.
페일 오버 : 동작하지 않는 서버를 검출하여 다른 서버에서 재송신하도록 제어한다.
라우팅 : 클라이언트로부터의 요청 내용에 따라 어떤 애플리케이션 서버에 중계할지 제어한다.
캐시서버
클라이언트에 반환되는 응답의 내용을 일시적으로 보관해(캐시해)두고 동일 요청이 있을 시 고속으로 반환을 해주는 서버이다.
요청 빈도수가 높은 것과 생성 및 취득에 높은 cost가 드는 것을 대상으로 한다.
각각의 서버는 별개가 아니다.
각각의 기능을 하나의 서버에서도 제공할 수 있는 것이다.
웹 서버라는 것이 어떠한 기능들로 이루어져있나를 중점적으로 살펴보면 된다.
ch) DevOps
개발자(Developer)의 Dev 와 인프라 엔지니어의 Ops 를 합친 용어로,
업무 범위나 내용 등으로 인해 골이 깊었던 Dev 와 Ops사이에 간극을 줄이고자 필요한 원칙과 사례를 정리한 것이다.
-..-