웹_Web 통신구조 이론

2018. 12. 4. 10:02Server

Server ..


| server-client model

서버는 특정한 서비스를 제공하는 컴퓨터를 말하며, 클라이언트는 이러한 서비스를 이용하는 사용자를 뜻한다


                Request (요청)

                 ---------->    

Client                            Server

                <----------

               Response(응답)




| 서버의 종류

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




| 통신구조


         ⎾  ‾  ‾  Front-End   ‾  ⏋ ⎾ ‾  ‾    ‾    ‾  Back-End   ‾  ‾  ‾  ‾  ‾  ⏋

      Client     <--->      Web Server     <--->         WAS     <--->         Database

   서비스 사용자                      HTML                       JSP/Servlet                데이터 관리 서버






| Web Server VS WAS


- Web Server란 **

사용자에게 HTML 페이지나 jpg, png 같은 이미지를 HTTP 프로토콜을 통해 웹 브라우저에 제공하는 서버로, 

내부의 내용이 이미 만들어져 있는 정적인 요소들을 화면에 보여주는 역할을 한다. (정적인 페이지)


종류 : Apache, Windows IIS, NGINX



- WAS (Web Application Server)란 **

사용자가 요청한 서비스의 결과를 스크립트 언어 등으로 가공하여 생성한 동적인 페이지를 사용자에게 보여주는 역할을 한다.


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

한 프로그램에 여러 요청이 있는 경우 한 개의 프로그램을 실행하여 그 프로그램을 다수 요청을 처리한다.

 

- CGI (Common Gateway Interface) 

웹서버가 직접적으로 웹 프로그램을 실행하는 것을 말한다. 

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

Perl이나 c/c++언어를 사용하여 웹서버가 실행할 수 있는 프로그램을 작성








WAS 서버를 Container라고도 한다.

 

서블릿 컨테이너 (Servlet-Container)

서블릿의 생명주기를 관리(생성, 초기화, 소멸)한다. 

HttpServletRequest, HttpResponse객체를 생성하고 요청에 따라 멀티스레딩 구성한다.

전송방식에 따라 동적으로 페이지 구성하는 작업진행하며 정적로딩처리를 진행


JSP 컨테이너(JSP-Container)

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

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



Jsp와 서블릿은 거의 똑같다. 자바로 저장된다. jsp는 html문서와 똑같다고 볼 수 있음. 똑같이 돌아간다.