1 분 소요

웹 서버

클라이언트(웹 브라우저)로부터의 요청을 받고
요청된 웹 페이지, 파일, 이미지 or 기타 리소스를 제공

웹 서버는 Http 프로토콜을 통해,
웹 페이지, 이미지, 파일 등을 제공하는데 중점을 두고 설계된 서버

일반적인 서버가 이 역할을 수행할 수 있지만,
분리함으로서 얻는 이점이 더 크다

  1. http 특화된 웹 서버를 캐시처럼 이용하여,
    웹 페이지와 관련된 요청을 효율적으로 처리하고 네트워크의 부하를 줄임
    (대량의 반복적인 요청 처리를 네트워크가 할 필요 없음)
  2. 웹 서버가 페이지 및 어플리케이션에 대한 보안 조치를 강화하고, 캐싱, 압축, 로드 밸런싱 등
    여러 기술을 사용하여 성능을 최적화 함
  3. 다양한 모듈을 통해 기능 확장이 가능

웹 서버는 반복적으로 정적인 콘텐츠를 저장하고 이를 제공하여
네트워크의 부하를 줄이며, 성능을 향상시킬 수 있기에 이러한 개념을 이용

주로 사용되는 소프트웨어는 Apache, Nginx, Microsoft IIS, LiteSpeed 등이 존재

‘프록시 서버’의 역할을 수행할 수 있으며
이 경우 ‘웹 프록시 서버’라 한다

클라이언트와 서버의 중재 역할을 하며
‘캐싱’, ‘보안 및 필터링’, ‘클라이언트 익명성 제공’, ‘로드 밸런싱’ 역할을 수행
(수행할 수 있다는 점이지, 웹 서버가 ‘프록시 서버’라는 의미는 아니다)

Common Gateway Interface(CGI)

웹 서버와 외부 프로그램 또는 스크립트 간의 통신을 위한 표준 인터페이스(일종의 개념)
웹 서버가 클라이언트의 요청을 받으면
(‘동적인 컨텐츠’를 요청한 경우)
CGI는 외부 프로그램 or 스크립트를 통해
서버 측에서 데이터베이스 조회, 파일 처리, 계산 등의 작업을 수행하도록 요청

이후 CGI가 결과물을 받아 클라이언트 요청을 처리

‘웹 서버의 기능을 구현하는 하나의 개념’이다
CGI를 구현하기 위해
다양한 언어와 프레임워크가 지원된다

다만, CGI는 매 요청마다 새로운 프로세스를 생성하기에
성능적으로 비효율적이며, 보안 취약점이 존재할 수 있음

따라서, 최근에는 성능과 보안적인 측면에서
동적 컨텐츠 요청을 처리하기 위해 새로운 기술이나 방법을
사용하려 하며, 이럴 경우 CGI가 대체된다

관련된 내용은

  1. FastCGI : CGI의 단점을 개선하기 위해 등장한 새로운 표준 인터페이스
    프로세스 재사용과 성능 향상을 목적으로 하며,
    외부 프로세스와의 지속적 연결을 통해 효율성을 높임
  2. 웹 프레임워크 : 웹 서버 내부에서 CGI의 개념을 구현하면, 외부 프로그램에
    의존하지 않고 웹 서버에서 처리하기에, 성능, 생산성, 확정성, 보안 등에 이점을 가짐
    다만, 추가적인 리소스를 사용하게 될 수 있으며,
    소규모 프로젝트에서는 불필요한 기능이 들어갈 수 있음
    (Flask, django 등)

다만 CGI는 여전히 지원되는 곳도 많다
모든 언어 및 환경에서 사용될 수 있기에 ‘유연’하며,
간단하고 쉽게 작성할 수 있다는 장점이 있다

MIME(Multipurpose Internet Mail Extensions)

인터넷에서 멀티미디어 컨텐츠를 교환하기 위한 표준 포맷

초기에는 전자메일에만 사용되었지만,
현재도 웹에서 다양한 데이터 유형을 표시하는 용도로 사용

ex : HTML 문서는 ‘text/html’ 로 분류된다

웹 브라우저는 이러한 MIME Type 을 이용해
서버로부터 전송된 데이터를 어떻게 처리할지 결정

웹 서버는 클라리언트에게 전송할 데이터의 유형을
이러한 MIME Type을 통해 보냄으로서 데이터 유형 표시

댓글남기기