Cookie : 클라이언트 측에서 관리되는 정보로 쿠키는 하드디스크에 저장되어 있기 때문에 브라우저를 종료해도 사라지지 않는다. 그래서 보안의 문제를 가지고 있다. 따라서 보안에 관련된 정보는 세션으로 처리하고, 보안과 관련 없는 정보는 쿠키로 처리한다.

사용자를 식별하기 위한 쿠키 (자동으로 생성되는)를 보통 세션 쿠키라고 한다.

자동으로 발행되는 쿠키가 세션 쿠키이다. - 이건 was 마다 다르다.

수동으로 발행하는 쿠키를 수동쿠키 또는 사용자 정의 쿠키라고 부른다.

Session : 세션은 서버 측의 컨테이너에서 관리되는 정보로, 컨테이너에 접속해서 종료되기까지 유지된다. 서버측에서 관리되기 때문에 보안에 안전하다고 볼 수 있다. 세션은 세션의 유지 시간을 설정 할 수 있다.

HTTP를 사용한 웹 서버 통신은 기본적으로 Request/Response를 이용하여 한번 전송하고, 한번 응답하는 서비스를 종료한다. 그래서 사용자의 정보를 유지하기 위해 Session Tracking을 사용한다. (
추가!!!!)

Cookie와 Session을 사용하는데 있어서 반드시 알아야 하는 것은 동시에 많은 사용자가 페이지에 접속하게 된다면 session이 발생하여 메모리를 차지하게 된다는 것이다. 그래서 서버가 죽는 경우가 발생 할 수 있다.
일예로 아마존에서 이벤트를 했는데 동시에 접속자가 몰려서 session이 많이 발생하여 메모리를 잡아먹게 되어 서버가 다운 되는 경우가 발생했다고 한다.;;;

그래서 개발자가 개발시에 주의해야 할 점은 jsp페이지에서

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" session="true"%>

page 지시어에 보면 session="true" 항목이 있다. 기본값은 true이고 HttpSession의 사용여부를 결정한다.

이 부분을 false로 놓고 개발을 해야 한다. 그리고 로그인 같은 세션이 필요한 곳에서는 세션을 살려 놓고 작업을 한다.

이클립스에서 이부분을 설정하는 부분을 보면

Windows - Preferences - Web - JSP Files - Editor - Templates 로 이동해 보면 아래와 같은 그림을 볼 수 있다.


여기서 New JSP File(html)을 클릭하고 Edit를 누르면 아래와 같은 그림이 나온다.

<%@ page language="java" contentType="text/html; charset=${encoding}"
    pageEncoding="${encoding}"%>


이 부분을 아래 그림과 같이 변경한다.


이 부분에서 page 지시어 부분을 그림에서와 같이 변경하고 JSP 페이지를 만들면 기본적으로 변경한 내용으로 만들어 진다.

이렇게 설정을 하고 작업을 하며, 세션이 필요한 경우에는 session="true" 로 변경하고 작업을 하면 된다.

만약 false로 놓고 cookie나 session 작업을 한다면 cookie와 session은 실행되지 않는다.

+ Recent posts