min8282

[Week1] 04 - 웹 서버 및 동적 페이지 본문

Normaltic Study

[Week1] 04 - 웹 서버 및 동적 페이지

min8282 2024. 4. 20. 20:23

웹 서버의 역할

1. 클라이언트 요청 처리

브라우저에 웹 주소(URL)를 입력하면 브라우저가 해당 웹 서버에 요청(Request)을 보내고 서버는 요청을 처리하고 처리된 결과를 응답(Response)한다.

 

2. 웹 페이지 제공

웹 페이지를 저장, 처리 및 사용자 브라우저에 전달한다. 이러한 페이지는 고정되어 변경되지 않는 정적 페이지일 수도 있고, 사용자 입력이나 기타 요인에 대한 응답으로 즉석에서 생성되는 동적 페이지가 될 수도 있다.

 

3. 스크립트 및 애플리케이션 처리

동적 콘텐츠를 생성하기 위해 PHP, Python 또는 Node.js와 같은 서버 측 스크립팅 언어를 사용한다. 웹 서버는 이러한 스크립트와 애플리케이션을 실행하고 결과를 다시 클라이언트로 보낸다.

 

4. 리소스 관리

웹 서버는 HTML, 이미지, 비디오, 스타일시트, javascript 파일을 포함한 다양한 유형의 리소스를 효율적으로 처리한다.

 

5. 보안 유지

HTTPS와 같은 보안 프로토콜을 적용하여 서버와 클라이언트 간에 전송되는 데이터를 암호화함으로써 중요한 정보를 가로채거나 변조로부터 보호할 수 있다.

 

6. 세션 및 상태 관리

Interactive 웹 애플리케이션의 경우 웹 서버는 종종 세션과 사용자 상태를 관리한다. 여기에는 로그인 인증 등 각 사용자와 사이트의 상호 작용에 대한 정보를 유지하는 내용이 포함된다.


동적 페이지

동적 웹 페이지는 사용자 요청이나 다른 매개 변수에 따라 웹 서버에서 동적으로 생성되는 페이지다. 정적 웹 페이지와 달리 사전에 미리 만들어지는 것이 아니라 요청 시간에 생성되므로 개인화된 콘텐츠, 실시간 업데이트 및 데이터베이스 또는 외부 시스템과의 상호 작용이 가능하다.

 

하나 예시를 들면 성적표를 나눠주는 정적인 웹 사이트가 있다. A, B, C에게 각각 성적표를 나눠주려면 A_score.txt, B_score.txt, C_score.txt라는 파일이 저장되어 있어야 한다. 하지만 만약에 성적표를 나눠줘야 하는 인원이 100명, 1000명, 10000명 점점 증가하게 되면 웹 서버는 해당 데이터를 저장하거나 처리하기에 큰 힘이 든다. 이런 경우를 방지하고자 대부분의 웹 페이지는 사용자와 웹 페이지가 상호 작용할 수 있는 동적 페이지를 사용한다. 이를 위해서 WAS를 사용하는 경우가 많다.

 

WAS(Web Application Server)란?

웹 응용 프로그램 서버(WAS)는 웹 애플리케이션을 호스팅하고 실행하는 특수한 유형의 서버다. 웹 응용 프로그램을 실행하기 위해 필요한 환경을 제공하며, 웹 서버와 비슷하지만 조금 더 특화된 기능을 갖고 있다.

  1. 웹 애플리케이션 호스팅: WAS는 웹 애플리케이션을 실행하는 환경을 제공한다. 이는 서버 측 코드를 실행하고, 데이터베이스와 통신하며, 클라이언트 요청을 처리하고 응답하는 것을 포함한다.
  2. 요청 처리: 클라이언트로부터의 HTTP 요청을 받아들이고, 해당 요청을 처리하여 동적 콘텐츠를 생성하거나 정적 콘텐츠를 제공한다.
  3. 웹 애플리케이션 수명주기 관리: WAS는 웹 애플리케이션의 시작, 실행 및 중지와 같은 수명주기 관리를 담당한다. 이는 애플리케이션의 상태를 유지하고 애플리케이션을 초기화하고 리소스를 관리하는 데 도움이 된다.
  4. 엔터프라이즈 기능 지원: 많은 WAS 제품들은 클러스터링, 로드 밸런싱, 보안 및 엔터프라이즈 시스템과의 통합과 같은 엔터프라이즈 기능을 제공한다.
  5. 확장성 및 고가용성: WAS는 웹 애플리케이션의 확장성과 고가용성을 지원한다. 이는 높은 트래픽을 처리하거나 분산 환경에서 신뢰성과 성능을 보장하기 위해 필요하다.

일반적으로 WAS는 정적 콘텐츠를 제공하는 웹 서버와 함께 사용되며, 웹 서버가 클라이언트로부터의 요청을 받아들이고 동적 콘텐츠 생성이 필요한 경우에는 WAS로 요청을 전달한다.

 

'Normaltic Study' 카테고리의 다른 글

[Week2] 07 - DB와 SQL  (0) 2024.05.01
[Week1] 06 - Assignment1  (0) 2024.04.20
[Week1] 03 - 환경설정/ova -> qcow2 변환 방법  (0) 2024.04.20
[Week1] 02 - 가상머신  (1) 2024.04.20
[Week1] 01 - 사전준비  (0) 2024.04.20