쿠키(Cookie)란
- 클라이언트에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. (텍스트 형식)
- 서버 측에서 클라이언트 측에 상태 정보를 저장하고 추출할 수 있는 메커니즘.
- 이름, 값, 저장 기간 (쿠키 만료 기간), 경로 정보가 들어있다.
- 일정 시간 동안 데이터를 저장할 수 있어서 로그인 상태를 유지한다.
- HTTP에서 클라이언트의 상태 정보를 클라이언트의 하드 디스크에 저장하였다가 필요할 때 참조, 재사용한다.
- 쿠키 저장 시 종료 시점을 설정하고 설정하지 않으면 브라우저 종료 시 소멸)
쿠키의 사용 예
- 방문했던 사이트에 재 방문 시, 아이디와 비밀번호 자동 입력
- 팝업 '(기간) 동안 이 창을 다시 보지 않음' 체크
쿠키의 제약 조건
- 클라이언트에 총 300개까지 저장할 수 있다.
- 하나의 도메인 당 20개의 값만 가질 수 있다.
(20개 초과 시 가장 적게 참조된 쿠키가 지워진다.)
- 하나의 쿠키 값은 4096 Byte까지 저장 가능하다.
쿠키는 사용자가 요청하지 않아도 브라우저는 Request 시 Request Header에 넣어서 서버에 전송한다.
세션 (Session) 이란
- 클라이언트와 웹서버 간 네트워크 연결이 지속 유지되고 있는 상태를 말한다.
(브라우저를 열어 서버에 접속한 뒤 접속을 종료할 때까지)
- 클라이언트가 웹서버에 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는데, 이 ID를 세션이라고 부른다. 이 ID는 쿠키를 사용하여 유지되며, 이 쿠키의 이름이 JSESSIONID이다.
- JSESSIONID를 웹 브라우저에 전달하고, 클라이언트는 새로운 접속 시 쿠키를 통해서 세션 ID 값을 서버에 전달한다.
세션의 사용 예
- 로그인과 같이 보안상 중요한 작업
쿠키와 세션의 차이
일반적인 세션은 쿠키를 바탕으로 동작하기 때문에 쿠키와 세션은 기능상 비슷한 역할을 하고 동작 원리도 비슷하다.
가장 중요한 차이점은 저장 위치이다.
쿠키는 클라이언트에 저장되고, 세션은 서버에 저장된다.
구분 |
쿠키 (Cookie) |
세션 (Session) |
저장 위치 |
클라이언트 |
서버 |
저장 형식 |
텍스트 형식 |
Object 형 |
종료 시점 |
쿠키 저장 시 설정 |
|
자원 |
클라이언트의 자원 사용 |
서버의 자원 사용 |
용량 제한 |
총 300개, 도메인당 20개, 쿠키 당 4096Byte |
서버 허용하는 한 용량에 제한이 없다. |
'IT > Etc.' 카테고리의 다른 글
Chrome 브라우저에서 Ajax 테스트 (0) | 2018.11.22 |
---|---|
이클립스 (Eclipse) 메모리 설정 Heap 영역 늘리기&사용량 확인 (0) | 2018.01.15 |
정규식 예제 정리 (0) | 2017.12.27 |
[CSS] Vendor Prefix(접두어) webkit, moz, o, ms (0) | 2017.12.26 |
Eclipse 기반 JRebel 사용법 (설치, 설정) (0) | 2017.12.13 |