웹에서 서비스를 제공하는 컴퓨터 시스템
서버는 우리말로 레스토랑에서 '시중드는 사람'정도로 비유할 수 있다.
우리는 주로 정보를 검색하기 위해 포털 사이트를 이용하고, 필요한 물품을 구매하기 위해 쇼핑몰을 이용하게 되는데, 이런 서비스를 제공하는 웹 애플리케이션은 서버 컴퓨터에 파일의 형태로 저장되어 있다.
사용자로부터 HTTP를 통해 요청을 받거나, 웹 컨테이너가 전달해준 결과물을 정적인 페이지로 생성하여 사용자에게 응답해주는 소프트웨어
웹 페이지는 주로 HTML, CSS, JavaScript 등으로 구성된다.
웹 서버가 전송해준 요청을 기초로 동적인 페이지를 생성하여 웹 서버로 돌려준다.
'동적'인 페이지라고 표현하는 이유는 사용자마다 다른 결과를 응답할 수 있기 때문이다.
간단한 예로 로그인이 있다. 로그인한 아이디를 보고 각자에 맞는 페이지를 구성해 보내준다.
웹 애플리케이션이 실행될 수 있는 환경을 제공하는 소프트웨어
컴퓨터에서 운영체제(윈도우, 리눅스 등)와 비슷한 역할을 하는 소프트웨어
WAS는 위에서 설명한 웹 서버와 웹 컨테이너를 포함한 개념이다.
대표적인 예로는 톰캣
이 있으며, 웹로직, 웹스피어 등의 제품이 있다.
보통 www라고 줄여 쓰는 월드 와이드 웹에서 웹 서버와 사용자 사이의 통신을 위해 사용하는 통신 프로토콜이다.
사용자가 요청하면 웹 서버가 응답하는 단순한 구조의 프로토콜이다.
HTTPS는 암호화된 HTTP이다.
네트워크를 통해 컴퓨터들 정보를 주고받는 절차 혹은 통신 규약을 말한다.
다른 프로토콜로는 파일 전송을 위한 FTP, 이메일 전송을 위한 SMTP 등이 있다.
포트를 직역하면 '항구'라는 뜻인데, 컴퓨터 사이에서 데이터를 주고받을 수 있는 통로
를 말한다.
인터넷에서는 IP 주소를 통해 서버 컴퓨터의 위치를 파악한다. 그런 다음 그 컴퓨터가 제공하는 특정 서비스는 포트 번호를 통해 알 수 있다.
우리가 이용하는 인터넷상의 모든 서비스는 IP 주소와 함께 포트 번호까지 지정해야 제대로 요청을 전달할 수 있다.
대표적으로 HTTP는 80번 포트를, 보안이 적용된 HTTPS는 443번 포트를 사용한다.
정적 웹 페이지(static web page)
- 웹 서버에
'저장되어 있는 파일을 그대로'
웹 브라우저에 전송해 출력하는가장 기본적인 웹 페이지
- 클라이언트가 어떤 형태로 요청하더라도 같은 페이지는 항상 동일한 모습을 보여준다.
동적 웹 페이지(dynamic web page)
동일한 페이지라 할지라도 그때그때 내용이 달라질 수 있는 웹 페이지
- 서버가 클라이언트의 요청을 해석하여 가장 적절한 웹 페이지를 그때그때 생성해 보내주는 기술
- 클라이언트는 요청한 계정, 시간, 지역, 언어, 기타 입력값에 따라 다른 결과를 받는다.
- 전처리를 어떻게 처리하느냐에 따라 구체적인 동적 웹 페이지 기술이 나뉜다.
ex) Servlet, JSP, ASP, PHP 등
동적 웹이 반드시 좋은 것만은 아니다. 정적 웹 페이지가 더 만들기 쉽고 속도도 빠르며 운영 비용도 저렴하다. 그래서 내용이 변하지 않는 콘텐츠라면 정적 웹으로 구성하는 게 합리적이다.
실제로 대부분의 웹 사이트나 웹 애플리케이션은 정적인 콘텐츠와 동적인 콘텐츠가 섞여 있다. 그래서 자연스럽게 오늘날의 웹은 정적 웹 페이지와 동적 웹 페이지가 혼합된 형태를 띈다.
참고 자료
🔗 성낙형의 JSP 자바 웹 프로그래밍