개발 기록
웹 서버란? 본문
웹 서버의 정의는 HTTP를 통해 웹 브라우저에서 요청하는 HTML문서나 오브젝트를 전송해주는 서비스 프로그램이다.
주된 기능은
웹페이지를 클라이언트에게 전달하는 것이고, 주로 그림, css, 자바스크립트를 포함함 HTML 문서가 클라이언트로 전달된다.
또한 클라이언트로부터 콘텐츠를 전달받는 것도 웹서버의 기능에 속한다.
흔히 웹 브라우저 또는 웹 크롤러로 부르는 클라이언트는 HTTP를 통해 리소스를 요청하며
서버는 해당 리소스를 반환하거나 처리할 수 없을 경우 에러메시지를 전달한다.
리소스는 일반적으로 서버의 보조기억장치에 있는 실제 파일을 가리키지만
반드시 그런 것은 아니며 웹 서버가 어떻게 수행하느냐에 따라 달라 질 수 있다.
웹 서버의 공통 기능
HTTP, 통신기록
대다수 웹 서버는 인증, 정적 콘텐츠관리, 보안서버 지원, 콘텐츠 압축, 가상호스팅, 대용량 파일지원, 대역폭 스로틀링을 지원하는데
각각의 내용에 대해서 추후에 더 포스팅을 진행할 예정이다.
시장 구조
시장 구조는 아파치의 점유율이 굉장히 높다.
아파치 53.42%, IIS 16.69%, nginx 15.52%, GWS 3.42%
-> 왜 이런 결과가 나왔을까?
-> 그리고 어떤 웹 서버등이 더 존재 할까?
동작환경
클라이언트인 웹 브라우저의 URL에서 나타내는 HTML문서 및 각종 정보를 HTTP로 송신한다.
대부분 클라이언트의 웹 브라우저와의 사이에 다수의 커넥션을 연결하여 HTML문서 및 기타 파일을 병렬로전송하여
처리시간을 단축하는 서비스를 제공한다.
HTML문서 처리를 위한 프로그램으로
CGI스크립터, 자바서블릿, 펄, 루비, PHP 등 스크립트 언어가 많이 개발된 상태이다.
자바 서블릿은 웹 프로그램을 동작하기 위해 작성된 자바 스펙으로
초기 CGI의 문제점인 대용량 처리의 문제점을 극복한 언어이다
→ 어떻게 대용량 처리에 대한 문제점을 극복했어
다른 언어들도 그러한 문제점을 극복했어? 어떤방식으로 극복했어?
대규모 웹 시스템을 구성하는 경우, 같은 서비스를 제공하는 웹 서버를 병렬로 설치하고,
웹 서버의 앞쪽에 로드밸런스라는 분산처리하는 네트워크 장비를 통해
웹 서버에서 처리를 분배하는 방식을 사용하고 있다.
이러한 방식은 웹 시스템의 가용성과 신뢰성을 보장하고있다.
웹서버의 종류
아파치 웹 서버
CERN 웹 서버
NCSA 웹 서버
인터넷 정보 서비스 IIS
웹 투비 WebtoB
구글 GWS
썬마이크로 시스템즈 Sun Java System Web Server
Oversee oversee
lighttpd lighttpd
LightSpeed
Mongoose.
nginx
node.js
Zeus
아파치 톰캣
추후 더 알아볼 내용
서버 공통 기능인
인증, 정적 콘텐츠관리, 보안서버 지원, 콘텐츠 압축, 가상호스팅, 대용량 파일지원, 대역폭 스로틀링
아파치는 왜 가장 인기있는 웹서버일까?
각각의 웹 서버들의 역사 및 기존에 있던 서버가 어떤점이 불편해서 나오게 되었을까?
그리고 각각 서버들의 대해서 어떤 차이점이 있을까?
동작과정중
대용량 처리의 문제점을 어떻게 극복했는지, 다른 언어들도 그러한 문제점을 극복했을까?
로드밸런스는 무엇이고 어떤 식으로 분산처리를 할수 있는 네트워크 장비인가?
출처: https://chilryun.tistory.com/28 [WEBDEVELOPER의 블로그]
'웹 자료' 카테고리의 다른 글
URL, URI 개념 정리 및 비교 (0) | 2020.01.12 |
---|---|
Socket과 Port 개념과 차이점 (0) | 2020.01.10 |
HTTP(HyperText Transfer Protocol) (0) | 2020.01.10 |
Socket Programming(소켓 프로그래밍) (0) | 2020.01.10 |
GraphQL 개념 설명 (0) | 2020.01.06 |