JSP를 이용하여 구성할 수 있는 Web Application A rchitecture는 크게 model1 과 model2로 나뉜다
JSP가 client의 요청에 대한 Logic 처히와 response page(view)에 대한 처리를 모두 하느냐, 아니면 response page에 대한 처리만 하는지가 가장 큰 차이점이다
Model2 구조는 MVC(Model-View-Controller) Pattern 을 web 개발에 도임한 구조를 말한다.
Model2는 모든 처리를 JSP 페이지에서 하는 것이 아니라, client 요청에 대한 처리는 servlet이, logic 처리는 java class, client에게 출력하는 response page를 JSP가 담당한다
Model2 구조는 MVC pattern을 웹개발에 도입한 구조이며 완전히 같은 형태를 보인다.
client가 server에 요청
server는 요청에 대한 처리를 한 후 client에 응답
응답 후 연결을 해제 >> stateless
서버에서 사용자의 컴퓨터에 저장하는 정보파일
사용자가 별도의 요청을 하지 않아도 브라우저는 request시 Request Header를 넣어 자동으로 서버에 전송
key와 value로 구성되고 String 형태로 이루어져 있음
Browser마다 저장되는 쿠키는 다르다. (서버에서는 Browser가 다르면 다른 사용자로 인식)
세션관리: 사용자 아이디, 접속시간, 장바구니 등 서버가 알아야 할 정보 저장
개인화: 사용자마다 다르게 그 사람에 적절한 페이지를 보여줄 수 있다
트래킹: 사용자의 행동과 패턴을 분석하고 기록
ID 저장 (자동 로그인)
일주일간 다시 보지 않기
최근 검색한 상품들을 광고에 추천
쇼핑몰 장바구니 기능
이름: 여러 개의 쿠키가 client의 컴퓨터에 저장되므로 각 쿠키를 구별하는데 사용되는 이름
값: 쿠키의 이름과 매핑되는 값
유효기간: 쿠키의 유효기간
도메인: 쿠키를 전송할 도메인
경로: 쿠키를 전송할 요청 경로
client가 페이지를 요청
WAS는 Cookie를 생성
HTTP Header에 Cookie를 넣어 응답
브라우저는 넘겨받은 Cookie를 PC에 저장하고, 다시 WAS가 요청할 때 요청과 함께 Cookie를 전송
브라우저가 종료되어도 Cookie의 만료기간이 남아있다면 Client는 계속 보관
동일 사이트 재방문시 Client의 PC에 해당 Cookie가 있는 경우, 요청 페이지와 함께 Cookie를 전송
이름, 값, 만료일, 경로 정보로 구성되어 있다
클라이언트에 총 300개의 쿠키를 저장할 수 있다
하나의 도메인 당 20개의 쿠키를 가질 수 있다
하나의 쿠키는 4KB까지 저장 가능하다
방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라 한다.
WAS의 메모리에 Object 형태로 저장
메모리가 허용하는 용량까지 제한 없이 저장 가능
session의 사용 예
클라이언트카 페이지를 요청
서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여, 클라이언트가 해당 session-id를 보냈는지 확인
session-id가 존재하지 않는다면, 서버는 session-id를 생성해 클라이언트에게 돌려준다
서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용해 서버에 저장. 쿠키 이름: JSESSIONID
클라이언트는 재접속시, 이 쿠키(JSESSIONID)를 이용하여 session-id 값을 서버에 전달
웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장
웹 서버에 저장되는 쿠키(=세션 쿠키)
브라우저를 닫거나, 서버에 세션을 삭제 했을 때만 삭제가 되므로, 쿠키보다 비교적 보안이 강하다
저장 데이터에 제한이 없다
각 클라이언트 고유 Session ID를 부여한다
Session ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스 제공
브라우저당 하나의 JSESSIONID를 할당 받음
아이디 또는 닉네임과 같이 로그인 했을 경우 자주 사용되는 정보를 session에 저장하면 DB를 접근할 필요가 없으므로 효율적이다