2018. 12. 4. 10:02ㆍServer
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문서와 똑같다고 볼 수 있음. 똑같이 돌아간다.