- HTTP : 클라이언트-서버 모델 기반 프로토콜
- 클라이언트 : 서비스를 요청해서 사용하는 컴퓨터(사용자)
- 서버 : 서비스를 제공하는 컴퓨터
Web Server
정적 콘텐츠 저장하고 제공하는 서버
- HTML CSS JavaScript Image 등
- 대표적인 웹 서버 : Apache Http Server
WAS (Web Application Server)
동적 어플리케이션을 실행하고 관리하는 미들웨어 서버
- 요청에 따라 실시간으로 응답을 생성, 제공
- Servlet/JSP 실행, 비즈니스 로직 처리, 데이터베이스 연동
- 대표적인 웹 서버 : Apache Tomcat
- 핵심 기능
- 웹 컨테이너 : 서블릿/JSP 실행 환경
- 트랜잭션 관리 : 데이터 일관성 보장
- 커넥션 풀 : 데베 연결 관리
- 보안 처리 : 인증/인가 처리
프로토콜://서버주소(호스트번호):포트/파일경로/파일명
프로토콜 HTTP/HTTPS 통신 방식 서버 주소 도메인명 or IP 주소 포트 번호 서비스 구분
생략 가능경로 서버 내 리소스 논리적 위치 쿼리 문자열 서버에 전달할 매개변수 ?user=useridFragment 페이지 내 특정 위치 지정 HTTP Request
- HTTP 응답과 요청 시 메시지 구성이 있음
요청 라인
Request LineHTTP 메서드 방식 및 요청 URL, 프로토콜 정보 요청 헤더
Request Header웹 브라우저 정보, 언어, 인코딩 방식, 서버 정보 등 추가 정보 요청 본체
Request Body요청에 필요한 내용 HTTP Response
상태 라인
Status Line응답 상태 코드, 프로토콜 정보 응답 헤더
Response Header응답 처리 날짜, 인코딩 방식, 요청 서버 정보 등 같은 추가 정보 응답 본체
Response Body응답에 필요한 HTML 문서 등
사용자가 웹 브라우저로 접속해서 이용하는 프로그램
- 인터넷 기반 웹상에서 웹 브라우저를 이용한 클라이언트와 웹 서버 간에 동적으로 요청/응답 처리하는 프로세싱
JSP/Servlet 아키텍쳐
웹 컴포넌트
웹 어플리케이션을 구성하는 실행 가능한 소프트웨어 단위
- HTTP 요청을 처리하고 응답을 생성하는 역할
- HTML 컴포넌트
- JSP 컴포넌트
- 동적 웹페이지 생성하는 템플릿
- HTML, 화면 중심
- Servlet 컴포넌트
- HTTP 요청을 처리하는 자바 클래스
- 비스지니 로직 중심 프로그래밍 방식
- 로그인 처리, 데이터 조회, API 응답 등
웹 컨테이너
웹 컴포넌트(서블릿, JSP) 실행하고 관리하는 런타임 환경
- 이벤트(웹 브라우저 요청) 방식으로 동작
- 역할
- 생명주기 관리, 이벤트 처리, 리소스 관리
- Tomcat
MVC 패턴
- model
- 어플리케이션의 데이터와 비즈니스 로직 담는 객체
- view : JSP
- 사용자에게 데이터 표시
- 비즈니스 로직 X
- 하나의 모델을 다양한 뷰에서 사용가능
- Controler : Servlet
- 모델과 뷰 사이 동작 조정
- 웹 요청에 적합한 모델 생성 처리
- 적절한 뷰를 선택해 모델 전달
- 오픈소스 웹 어플리케이션 서버 was
- 서블릿 / jsp 실행하는 웹 컨테이너
- 웹 컨테이너, 웹 서버, 경량 WAS 기능
- 디록토리 구조
- bin : Tomcat 실행 파일
- lib : JSP/Servlet 라이브러리
- webapps : 웹 어플리케이션 배포 폴더
- conf : 설정 파일
- logs : 로그 파일