개요

kailyn·2024년 9월 10일

Servlet

목록 보기
1/6

01. Servlet 개요

01. Network 통신

01-01. Server-client Model

  • 서버는 특정 서비스를 제공하는 컴퓨터를 말하며, 클라이언트는 해당 서비스를 이용하는 사용자를 의미한다.

01-02. Server의 종류

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

01-03. 개별(로컬)프로그램과 서버 프로그램의 특징

  • 개별 프로그램의 특징 및 단점

    1. 프로그램 업데이트 발생 시 각각 다시 다운로드 해야 한다.
    2. 각 프로그램에서 생성된 데이터 개별 저장되므로 공유 불가하다.
  • 서버 프로그램 특징

    1. 프로그램 업데이트 발생 시 서버가 상관하지 않아도 클라이언트가 서버에서 다운 받아 업데이트를 개별적으로 진행한다.
    2. 데이터는 서버에 일괄 저장된다.

02. Web 통신

02-01. Web 통신 구조

02-02. Web Server란

  • 사용자에게 HTML 페이지나 jpg, png와 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공하는 서버로, 내부의 내용이 이미 만들어져 있는 정적인 요소들을 화면에 보여주는 역할을 한다.

02-03. Web Server의 종류

  • Apache Software Foundation에서 만든 서버로 HTTP 통신에 대한 여러 라이브러리를 제공한다.

  • Window OS에서 제공하는 웹 서버로, 높은 수준의 보안성과 성능을 제공한다.

  • 무료 오픈 소스 서버로, 사용자 요청을 스레드가 아닌 확장성이 있는 이벤트 기반 설계를 통해 필요 리소스만 할당하여 사용한다.

02-04. WAS란

  • Web Application Server의 약자로, 사용자가 요청한 서비스의 결과를 스크립트 언어 등으로 가공하여 생성한 동적인 페이지를 사용자에게 보여주는 역할을 한다.
  • Web Application이란
    • 정적인 페이지를 제공하는 미리 완성된 클라이언트 프로그램이다.
    • 브라우저만 설치되어 있으면 서버에 요청해 언제든 볼 수 있다.
    • 클라이언트 요청(= url 요청)에 따라 서버가 응답을 html 태그 문법인 텍스트로 전송하면, 브라우저가 해당 텍스트를 해석해 띄워주는 방식이다.
    • 서버는 클라이언트 요청(request)에 반드시 응답(response)해야 한다.
      • 응답할 내용이 없으면, 응답 내용이 없다는 응답이라도 해야 한다.

02-05. WAS의 종류

  • Apache Software Foundation에서 서블릿과 JSP를 통한 동적인 웹 문서를 처리하기 위해 만든 웹 애플리케이션 서버이다.

  • Jboss라고도 불리며, tomcat이 제공하는 servlet container뿐만 아니라 EJB container를 별도로 제공하여 폭넓은 서비스를 구현한다.

  • 국산 WAS로, 대용량 데이터 트랜잭션을 고성능으로 처리하며 개발 및 운영에 관한 기술 지원이 뛰어나다.

02-06. Web & WAS

  • 구조: Web browser ↔ Web (html) ↔ WAS
  • web(html)은 사전에 작성된 화면으로 정적인 페이지(사전에 작성된 화면)를 의미한다. 서버는 따로 두고 일단 클라이언트 요청에 대해 web에서 응답한 뒤에, 처리할 동적 요청 등 필요에 따라 was에 요청하여 응답한다.
  • WAS는 Servlet을 보관하다가 서블릿 라이프사이클에 따라 생성, 소멸 등을 주관하는 역할을 하여, 다른 말로 Servlet Container라고도 부른다.

03. CGI & WAS

03-01. CGI

  • CGI(Common Gateway Interface)는 웹 서버가 직접적으로 웹 프로그램을 실행하는 것을 말한다.
  • 동일 프로그램에 대한 요청이 있을 때마다 각각의 프로그램을 실행하여, 요청과 프로그램이 1:1 매칭되어 실행된다.
  • Perl이나 C/C++ 언어를 사용하여 웹 서버가 실행할 수 있는 프로그램을 작성한다.

03-02. WAS

  • WAS(Web Application Server)는 웹 서버가 웹 애플리케이션 서버에 요청하면, 웹 애플리케이션 서버가 해당 프로그램을 실행하는 방식이다.
  • 동일 프로그램에 여러 요청이 있으면 한 개의 프로그램을 실행하여 다수 요청을 처리한다.

03-03. Container (Servlet, JSP)

  • Servlet-Container
    • Servlet의 생명 주기(생성,초기화,소멸)를 관리한다.
    • HttpServletRequest, HttpResponse 객체를 생성한다.
    • 요청에 따라 멀티스레딩 구성이 가능하며, 전송 방식에 따라 동적으로 페이지 구성하는 작업을 진행한다.
    • 정적 로딩 처리를 한다.
  • JSP-Container
    • JSP 파일을 java코드로 변경해주고 class파일로 전환하여 메모리 공간에 로드한 뒤 실행 가능하게 만드는 작업(= Servlet화)을 한다.
    • 처리 결과를 HTML파일로 만들어주는 작업을 진행한다.
    • 동적 로딩 처리를 한다.

03-04. Web Server & WAS

profile
나는 할 수 있다...!

0개의 댓글