쿠키, 세션
쿠키
쿠키는 내가 알고 있는 그 쿠키다. 그렇다.
쿠키 어원썰은 여러개 있다지만 헨젤과 그레텔에서 아이들이 쿠키조각을 흘리고 간 것에서 유래해서 사용자가 흘리는 데이터, 쿠키라는 이름을 붙은 썰이 있다.
어쨌든, 쿠키의 특징을 간추리자면
1) 클라이언트 사이드에 저장된다.
2) 최대 4kb, 300개 데이터까지만 저장이 된다.
3) 보안에 취약한 편이라 요즘엔 잘 안 쓰인다는 것.
HTTP는 무상태성 프로토콜이다. 즉, 한 번의 요청과 응답이 끝나면 연결을 끊어버린다.
따라서 클라이언트의 상태나 정보를 서버가 계속해서 Keep해둘 수 없다.
쿠키 (혹은 세션)이 없다면 인증이 필수인 페이지에선 반드시 로그인을 해야 하는 불편함이 있을 수 있다.
JSP에서 쿠키를 사용하는 간단한 흐름은 아래와 같다.
1) Cookie 객체를 생성하고 생성자에 "키", "밸류" 값을 파라미터로 준다.
2) Cookie 의 속성을 설정한다. (지속시간)
3) response 객체에 생성한 Cookie 객체를 담는다.
4) response를 받은 쪽은 request 내장 객체의 메소드인 getcookies() 를 통해 Cookie 정보를 가져올 수 있다.
세션
세션은 서버에서 동작하는 쿠키라고 이해해도 될 정도로 쿠키와 그 역할이 비슷하다.
다만 쿠키의 단점을 보완해주는 측면이 있고 클라이언트에 저장되지 않고 서버에 저장되므로 서버에서 클라이언트별로 ID를 발급해준다.
특징은
1) 서버 사이드의 하드디스크가 아닌 메모리에 상주한다.
2) 용량에 제한이 없다. (메모리가 받쳐주는 한)
3) 정보를 얻기 위해선 서버사이드에 직접 접근해야하므로 쿠키보다 보안이 우월하다.
4) 서버에서 클라이언트 요청이 들어올 때 자동으로 세션을 발급해주어 클라이언트 별로 ID를 하나씩 보유하게 된다. -> 이 때문에 세션은 새로운 세션객체를 만드는 것이 아니라 속성을 세팅해주는 메소드를 사용한다.
쿠키는 내가 알고 있는 그 쿠키다. 그렇다.
쿠키 어원썰은 여러개 있다지만 헨젤과 그레텔에서 아이들이 쿠키조각을 흘리고 간 것에서 유래해서 사용자가 흘리는 데이터, 쿠키라는 이름을 붙은 썰이 있다.
어쨌든, 쿠키의 특징을 간추리자면
1) 클라이언트 사이드에 저장된다.
2) 최대 4kb, 300개 데이터까지만 저장이 된다.
3) 보안에 취약한 편이라 요즘엔 잘 안 쓰인다는 것.
HTTP는 무상태성 프로토콜이다. 즉, 한 번의 요청과 응답이 끝나면 연결을 끊어버린다.
따라서 클라이언트의 상태나 정보를 서버가 계속해서 Keep해둘 수 없다.
쿠키 (혹은 세션)이 없다면 인증이 필수인 페이지에선 반드시 로그인을 해야 하는 불편함이 있을 수 있다.
JSP에서 쿠키를 사용하는 간단한 흐름은 아래와 같다.
1) Cookie 객체를 생성하고 생성자에 "키", "밸류" 값을 파라미터로 준다.
2) Cookie 의 속성을 설정한다. (지속시간)
3) response 객체에 생성한 Cookie 객체를 담는다.
4) response를 받은 쪽은 request 내장 객체의 메소드인 getcookies() 를 통해 Cookie 정보를 가져올 수 있다.
세션
세션은 서버에서 동작하는 쿠키라고 이해해도 될 정도로 쿠키와 그 역할이 비슷하다.
다만 쿠키의 단점을 보완해주는 측면이 있고 클라이언트에 저장되지 않고 서버에 저장되므로 서버에서 클라이언트별로 ID를 발급해준다.
특징은
1) 서버 사이드의 하드디스크가 아닌 메모리에 상주한다.
2) 용량에 제한이 없다. (메모리가 받쳐주는 한)
3) 정보를 얻기 위해선 서버사이드에 직접 접근해야하므로 쿠키보다 보안이 우월하다.
4) 서버에서 클라이언트 요청이 들어올 때 자동으로 세션을 발급해주어 클라이언트 별로 ID를 하나씩 보유하게 된다. -> 이 때문에 세션은 새로운 세션객체를 만드는 것이 아니라 속성을 세팅해주는 메소드를 사용한다.
댓글
댓글 쓰기