의견.png

웹서버

위키원
Rhkd1456 (토론 | 기여)님의 2019년 11월 4일 (월) 09:33 판 (예시)
이동: 둘러보기, 검색

웹서버(web server)란 웹 페이지가 들어 있는 파일을 사용자에게 제공하는 서버 프로그램이다. 시스템 소프트웨어의 일종이다. 웹서버는 웹브라우저로부터 HTTP 요청을 받아들이고, 클라이언트에게 웹 페이지를 반환하는 프로그램 혹은 그 프로그램을 실행하는 서버컴퓨터이다.

개요

세계 최초의 웹서버는 1990년 팀 버너스-리(Tim Berners-Lee)가 만든 CERN HTTPd이다. 이후 미국 일리노이 대학교NCSA[1]에서 NCSA 웹서버를 개발했다.
웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것이다. 주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달된다. 흔히 웹 브라우저 또는 웹 크롤러로 부르는 클라이언트는 HTTP를 통해 리소스를 요청하며 서버는 해당 리소스를 반환하거나 처리할 수 없는 경우 에러 메시지를 전달한다. 이러한 리소스는 일반적으로 서버의 보조 기억 장치에 있는 실제 파일을 가리키지만 반드시 그런 것은 아니며 웹 서버가 어떻게 수행하느냐에 따라 달라질 수 있다.

대다수의 웹 서버는 Active server page(ASP), PHP 등의 서버 사이드 스크립트 언어(Server-side scripting)를 지원한다. 이는 서버 소프트웨어의 변경 없이도 웹 서버가 수행할 동작을 분리된 서버 사이드 스크립트 언어에 기술할 수 있다는 의미이다. 보통 서버 사이드 스크립트 언어를 통해 구현되는 기능이란 HTML 문서를 동적으로 생성하는 것을 말한다. 이렇게 동적으로 생성된 HTML 문서는 동적 컨텐트라 하는데 주로 데이터베이스의 정보를 조회해서 보여주거나 수정하기 위해 사용된다. 동적 컨텐트와 대비되는 개념으로 정적 컨텐트가 있는데 일반적으로 동적 컨텐트보다 더 빠르게 동작하고 쉽게 캐시될 수 있지만, 반환되는 컨텐트의 내용이 항상 동일하다.

웹 서버는 WWW뿐만 아니라 프린터, 라우터, 웹캠과 같은 임베디드 장치이며 근거리 통신망(local network)에서도 사용된다. 시스템의 모니터링 또는 장치 관리를 위한 목적으로 사용되는데, 이렇게 웹 서버는 클라이언트에 다른 소프트웨어의 설치 없이 대부분의 운영체제에 포함된 웹 브라우저만으로 서비스를 제공할 수 있다.

예시

import socket
listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) listen_socket.bind((, 80)) # 80번은 웹의 일반적인 포트 listen_socket.listen(1) connection, address = listen_socket.accept() while True:  connection.recv(1024)  connection.sendall("""HTTP/1.1 200 OK  Content-type: text/html

종류

블록라인.png
이 그림에 대한 정보
아파치 웹서버 로고.png
아파치 웹서버
(Apache Web Server)
엔진엑스 로고.png
엔진엑스
(NginX)
아이아이에스 로고.png
아이아이에스
(IIS)
웹투비 로고.png
웹투비
(WebtoB)
아이플래닛 로고.png
아이플래닛
(iPlanet)
웹티어 로고.png
웹티어
(WebTier)

기능

웹서버는 HTTP, HTTPS, 통신기록, 인증, 정적 콘텐츠 관리, 콘텐츠 압축, 가상 호스팅, 대용량 파일 지원, 대역폭 스로틀링 기능 등을 제공한다.

각주

  1. NCSA는 National Center for Supercomputing Application의 약자로서, 미국 일리노이 대학교에 있는 국립 슈퍼 컴퓨터 응용 프로그램 센터이다. 이 센터의 연구원이었던 마크 앤드리슨(Marc Andreessen)은 모자이크 웹브라우저를 개발했다.

같이 보기


  의견.png 이 웹서버 문서는 소프트웨어에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.