네트워크 통신
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 |