Spring Framework/Servlet

[Servlet] 1. Servlet 개요

hyomee2 2024. 8. 28. 20:01

네트워크 통신

1. Server-Client 모델

- 서버: 특정 서비스를 제공하는 컴퓨터

- 클라이언트: 해당 서비스를 이용하는 사용자

 

2. Server의 종류

종류 설명
Web Server 웹 브라우저와 HTTP 프로토콜을 사용하여 사용자의 요구에 따른 특정 서비스를 제공하는 서버
Mail Server 인터넷을 통해 사용자 간의 전자 우편을 주고 받는 서비스 제공
FTP Server 서버 내에 파일을 업로드, 다운로드 할 수 있도록 파일 관리 기능 제공
Talnet Server Terminal, 텍스트로만 이루어진 창에서 특정 명령어를 통해 원격지 서버를 접속 및 관리
Database Server 데이터를 저장하고,
원격지에 접속할 경우 권한에 따라 해당 데이터를 열람, 추가, 수정, 삭제하는 기능 처리

Web 통신

1. Web 통신 구조

 

2. 개별(로컬) 프로그램과 서버 프로그램

(1) 개별(로컬) 프로그램

- ex) 웹 브라우저(Chrome, Firefox...), 문서 작성 프로그램(Word...), 이미지 편집기(Photoshop...)s

- 프로그램 업데이트 발생 시 각각 다시 다운로드 해줘야 한다.

- 각 프로그램에서 생성된 데이터는 개별 저장되므로 공유가 불가능하다.

(2) 서버 프로그램

- ex) 웹 서버(Apache, Nginx...), DB 서버(MySQL, PostgreSQL...)

- 프로그램 업데이트 발생 시 서버가 상관하지 않아도 클라이언트가 서버에서 다운 받아 개별적으로 업데이트를 진행한다.

- 데이터는 서버에 일괄 저장된다.

 

3. Web Server와 WAS

(1) Web Server

: 정적 리소스를 제공하는 서버

- 누가 요청하더라도 똑같은  HTML로 작성된 파일을 반환한다. -> 가지고 있던 걸 응답만 해주면 되니 빠르다.

- ex) 네이버 들어갔을 때 메인 화면은 모두 공통이다.

- ex) Apache, Nginx...

(2) WAS

: 동적 리소스를 제공하는 서버

- 그때 그때 다른 결과를 반환한다. - > 웹서버보다는 시간 소요된다.

- 클라이언트 요청에 대해 web에서 응답한 뒤, 동적 요청 등 필요에 따라 WAS에 요청하여 응답한다.

-  Servlet 타입 객체를 통해 요청과 응답을 처리한다.

- Servlet을 보관하다가 servlet  라이프 사이클에 따라 생성, 소멸 등을 주관하는 역할을 하여, servlet container라고도 부른다.

- ex) 로그인을 하면 회원 정보가 회원마다 다르게 뜬다.

- ex) Apache Tomcat, WildFly...

 

4. CGI와 WAS

(1) CGI(Common Gateway Interface)

: 웹 서버직접적으로 웹 프로그램을 실행하는 것

- 동일 프로그램에 대한 요청이 있을 때마다 각각의 프로그램을 실행하여, 요청과 프로그램이 1:1 매칭되어 실행된다.

- Perl, C/C++를 이용하여 웹 서버가 실행할 수 있는 프로그램 작성

(2) WAS(Web Application Server)

: 웹서버가 웹 애플리케이션 서버에 요청하면, 웹 애플리케이션 서버가 해당 프로그램을 실행하는 방식

- 동일 프로그램에 여러 요청이 있으면 한 개의 프로그램을 실행하여 다수 요청을 처리한다.

 

5. Container

(1) Servlet-Container

- Servlet의 생명 주기(생성, 초기화, 소멸) 관리

- HttpServletRequest, HttpServletResponse 객체 생성

- 요청에 따라 멀티스레딩 구성이 가능하며, 전송 방식에 따라 동적으로 페이지 구성하는 작업 진행

- 정적 로딩 처리

(2) JSP-Container

- JSP 파일을 Java 코드로 변경해주고, class 파일로 전환하여 메모리 공간에 로드한 뒤 실행 가능하게 만드는 작업(=Servlet화)을 한다.

- 처리 결과를 HTML 파일로 만들어주는 작업 진행

- 동적 로딩 처리

 

(3) cf. Servlet vs JSP

- Servlet: Java 코드 안에 HTML 포함

- JSP: HTML 문서 안에 Java 코드 포함

 

* WAS는 servlet container와 JSP container을 포함하는 개념이다.

 

 

'Spring Framework > Servlet' 카테고리의 다른 글

[Servlet] 5. Cookie & Session  (2) 2024.09.02
[Servlet] 4. Forward와 Redirect  (0) 2024.08.30
[Servlet] 3. Servlet Method  (0) 2024.08.29
[Servlet] 2. Servlet LifeCycle  (1) 2024.08.28