웹서버 편집하기
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
− | '''웹서버'''<!--웹 서버-->(web server)란 [[ | + | '''웹서버'''<!--웹 서버-->(web server)란 [[웹 페이지]]가 들어 있는 [[파일]]을 사용자에게 제공하는 [[서버]] [[프로그램]]이다. [[시스템 소프트웨어]]의 일종이다. 웹서버는 [[웹브라우저]]로부터 [[HTTP]] 요청을 받아들이고, 클라이언트에게 [[웹 페이지]]를 반환하는 프로그램 혹은 그 프로그램을 실행하는 [[서버컴퓨터]]이다. |
== 개요 == | == 개요 == | ||
− | 세계 최초의 웹서버는 1990년 [[팀 버너스-리]](Tim Berners-Lee)가 만든 CERN HTTPd이다. 이후 미국 [[일리노이 대학교]]의 [[NCSA]]<ref>'''[[NCSA]]'''는 National Center for Supercomputing Application의 약자로서, 미국 [[일리노이 대학교]]에 있는 국립 슈퍼 컴퓨터 응용 프로그램 센터이다. 이 센터의 연구원이었던 [[마크 앤드리슨]](Marc Andreessen)은 [[모자이크]] 웹브라우저를 개발했다.</ref>에서 NCSA 웹서버를 개발했다. | + | 세계 최초의 웹서버는 1990년 [[팀 버너스-리]](Tim Berners-Lee)가 만든 CERN HTTPd이다. 이후 미국 [[일리노이 대학교]]의 [[NCSA]]<ref>'''[[NCSA]]'''는 National Center for Supercomputing Application의 약자로서, 미국 [[일리노이 대학교]]에 있는 국립 슈퍼 컴퓨터 응용 프로그램 센터이다. 이 센터의 연구원이었던 [[마크 앤드리슨]](Marc Andreessen)은 [[모자이크]] 웹브라우저를 개발했다.</ref>에서 NCSA 웹서버를 개발했다.<br> |
+ | 웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것이다. 주로 그림, CSS, [[자바스크립트]]를 포함한 [[HTML]] 문서가 클라이언트로 전달된다. 흔히 웹 브라우저 또는 웹 크롤러로 부르는 클라이언트는 HTTP를 통해 리소스를 요청하며 서버는 해당 리소스를 반환하거나 처리할 수 없는 경우 에러 메시지를 전달한다. 이러한 리소스는 일반적으로 서버의 보조 기억 장치에 있는 실제 파일을 가리키지만 반드시 그런 것은 아니며 웹 서버가 어떻게 수행하느냐에 따라 달라질 수 있다. | ||
− | + | 대다수의 웹 서버는 Active server page(ASP), [[PHP]] 등의 서버 사이드 스크립트 언어(Server-side scripting)를 지원한다. 이는 서버 소프트웨어의 변경 없이도 웹 서버가 수행할 동작을 분리된 서버 사이드 스크립트 언어에 기술할 수 있다는 의미이다. 보통 서버 사이드 스크립트 언어를 통해 구현되는 기능이란 HTML 문서를 동적으로 생성하는 것을 말한다. 이렇게 동적으로 생성된 HTML 문서는 동적 컨텐트라 하는데 주로 [[데이터베이스]]의 정보를 조회해서 보여주거나 수정하기 위해 사용된다. 동적 컨텐트와 대비되는 개념으로 정적 컨텐트가 있는데 일반적으로 동적 컨텐트보다 더 빠르게 동작하고 쉽게 캐시될 수 있지만, 반환되는 컨텐트의 내용이 항상 동일하다. | |
− | + | 웹 서버는 [[WWW]]뿐만 아니라 프린터, [[라우터]], [[웹캠]]과 같은 임베디드 장치이며 [[근거리 통신망]](local network)에서도 사용된다. 시스템의 모니터링 또는 장치 관리를 위한 목적으로 사용되는데, 이렇게 웹 서버는 클라이언트에 다른 소프트웨어의 설치 없이 대부분의 [[운영체제]]에 포함된 웹 브라우저만으로 서비스를 제공할 수 있다. | |
− | + | == 예시 == | |
+ | 80번 포트에 소켓을 열고 이 포트를 통해 들어오는 HTTP 요청을 받아, 다시 응답을 보내는 코드이다 | ||
+ | <font color="#A566FF">import</font> socket<br> | ||
+ | listen_socket = socket.socket(socket.AF_INET, | ||
+ | socket.SOCK_STREAM) | ||
+ | listen_socket.bind(('', <font color="#E0844F">80</font>)) <font color="#ABABAB"># 80번은 웹의 일반적인 포트</font> | ||
+ | listen_socket.listen(<font color="#E0844F">1</font>) | ||
+ | connection, address = listen_socket.accept() | ||
+ | <font color="#A566FF">while True</font>: | ||
+ | connection.recv(<font color="#E0844F">1024</font>) | ||
+ | connection.sendall(<font color="#47C83E">"""HTTP/1.1 200 OK | ||
+ | Content-type: text/html<br> | ||
+ | <br> | ||
+ | <hrml> | ||
+ | <body> | ||
+ | <h1>hello, World!</h1> | ||
+ | </body> | ||
+ | </html>""")</font> | ||
+ | connectiom.close() | ||
== 종류 == | == 종류 == | ||
− | {{ | + | {{로고블록100 |
− | |아파치 웹서버||아이아이에스|아이아이에스(IIS)|웹투비|웹투비(WebtoB)|아이플래닛|아이플래닛(iPlanet)|웹티어|웹티어(WebTier | + | |아파치 웹서버|아파치 웹서버<br>(Apache Web Server)|엔진엑스|엔진엑스<br>(NginX)|아이아이에스|아이아이에스<br>(IIS) |
+ | |웹투비|웹투비<br>(WebtoB)|아이플래닛|아이플래닛<br>(iPlanet)|웹티어|웹티어<br>(WebTier)| | ||
|}} | |}} | ||
− | * '''[[아파치 웹서버]]'''(Apache Web Server) : [[리눅스]] 기반의 무료 [[ | + | * '''[[아파치 웹서버]]'''(Apache Web Server) : [[리눅스]] 기반의 무료 [[오픈 소스]] 웹서버 프로그램이다. [[아파치재단]]에서 관리하고 있다. |
+ | * '''[[엔진엑스]]'''(Nginx) : 2004년 러시아의 [[이고르 시셰프]](Игорь Сысоев, <small>영어</small>: Igor Sysoev)가 개발한 무료 [[오픈 소스]] 웹서버 프로그램이다. 2011년 엔진엑스 회사를 설립하여 유료 기술지원을 하고 있다. | ||
* '''[[아이아이에스]]'''(IIS) : Internet Information Services의 약자로서, 미국 [[마이크로소프트]](Microsoft)사의 [[윈도우]] 시스템에서 사용하는 웹서버 프로그램이다. | * '''[[아이아이에스]]'''(IIS) : Internet Information Services의 약자로서, 미국 [[마이크로소프트]](Microsoft)사의 [[윈도우]] 시스템에서 사용하는 웹서버 프로그램이다. | ||
* '''[[웹투비]]'''(WebtoB) : 한국의 [[㈜티맥스소프트]]<--티맥스소프트, 티맥스 소프트-->가 개발한 웹서버 제품이다. 주로 [[와스]](WAS) 제품인 [[제우스]](JEUS)와 함께 사용된다. | * '''[[웹투비]]'''(WebtoB) : 한국의 [[㈜티맥스소프트]]<--티맥스소프트, 티맥스 소프트-->가 개발한 웹서버 제품이다. 주로 [[와스]](WAS) 제품인 [[제우스]](JEUS)와 함께 사용된다. | ||
* '''[[아이플래닛]]'''(iPlanet) : 미국 [[오라클 (회사)|오라클]] 회사가 제공하는 웹서버 제품이다. 미국 [[썬 마이크로시스템즈]]가 개발했고, '''썬원'''(SUN one)으로 불리기도 했다. 2010년 오라클에 인수되었다. | * '''[[아이플래닛]]'''(iPlanet) : 미국 [[오라클 (회사)|오라클]] 회사가 제공하는 웹서버 제품이다. 미국 [[썬 마이크로시스템즈]]가 개발했고, '''썬원'''(SUN one)으로 불리기도 했다. 2010년 오라클에 인수되었다. | ||
* '''[[웹티어]]'''(WebTier) : 미국 [[오라클 (회사)|오라클]] 회사가 판매하는 웹서버 제품이다. | * '''[[웹티어]]'''(WebTier) : 미국 [[오라클 (회사)|오라클]] 회사가 판매하는 웹서버 제품이다. | ||
− | |||
* '''[[구글 웹서버]]'''(GWS) : Google Web Server의 약자로서, 미국 [[구글]]이 만든 웹서버이다. | * '''[[구글 웹서버]]'''(GWS) : Google Web Server의 약자로서, 미국 [[구글]]이 만든 웹서버이다. | ||
− | == 시장 | + | == 기능 == |
+ | 웹서버는 [[HTTP]], [[HTTPS]], 통신기록, 인증, 정적 콘텐츠 관리, 콘텐츠 압축, 가상 호스팅, 대용량 파일 지원, 대역폭 스로틀링 기능 등을 제공한다. | ||
+ | |||
+ | == 시장 구조 == | ||
<table border="1" width=800> | <table border="1" width=800> | ||
<caption style="text-align:right;">2019년 10월 기준</caption> | <caption style="text-align:right;">2019년 10월 기준</caption> | ||
<tr bgcolor="#DCDCDC" style="text-align:center;"> | <tr bgcolor="#DCDCDC" style="text-align:center;"> | ||
− | <td><font size=4><b> | + | <td><font size=4><b>개발자</b></font><td><font size=4><b>2019년 9월</b></font><td><font size=4><b>퍼센트</b></font><td><font size=4><b>2019년 10월</b></font><td><font size=4><b>퍼센트</b></font><td><font size=4><b>변화</b></font></tr> |
− | <tr><td> | + | <tr><td>니진스<td>422,048,243<td>32.69%<td>427,719,289<td>32.88%<td>0.19</tr> |
<tr> | <tr> | ||
− | <td>아파치 | + | <td>아파치<td>374,739,321<td>29.02%<td>372,604,250<td>28.64%<td>-0.38</tr> |
<tr> | <tr> | ||
− | <td> | + | <td>마이크로 소프트<td>189,991,312<td>14.71%<td>183,224,187<td>14.08%<td>-0.63</tr> |
<tr> | <tr> | ||
− | <td>구글 | + | <td>구글<td>33,058,930<td>2.56%<td>34,861,968<td>2.68%<td>0.12</tr> |
− | </table> | + | </table> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{각주}} | {{각주}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 같이 보기 == | == 같이 보기 == | ||
− | * [[ | + | * [[소프트웨어]] |
− | |||
− | |||
− | |||
* [[시스템 소프트웨어]] | * [[시스템 소프트웨어]] | ||
+ | * [[오픈 소스]] | ||
+ | |||
+ | {{소프트웨어|토막글}} | ||
− | + | [[분류:웹서버]] |