Cookie
Cookie
쿠키 Cookie
- 클라이언트의 상태 정보를 유지하기 위한 기술
- 상태 정보를 클라이언트에 key와 value 형태로 저장했다가 다음 요청 시 저장된 쿠키를 함께 전송
- 저장할 수 있는 최대 용량은 대략 1.2MB
쿠키 표준(RFC 6255)에 명시된 제약
- 3000개까지 만들 수 있음
- 쿠키 하나의 최대 크기는 4096byte
- 하나의 호스트나 도메인에서 최대 50개까지 만들 수 있음
기본 동작
동작 매커니즘
- 클라이언트가 서버에 요청을 보냄
- 서버가 쿠키를 생성하여 HTTP 응답 헤더에 실어 클라이언트에 전송
- 클라이언트는 쿠키를 받아 저장(이 시점에는 쿠키가 클라이언트에만 저장된 상태로 서버는 아직 쿠키를 사용할 수 없음)
- 클라이언트는 다음번 요청 시 저장해둔 쿠키를 HTTP 요청 헤더에 실어 보냄
- 서버는 쿠키의 정보를 읽어 필요한 작업을 수행
속성과 API
쿠키를 구성하는 속성
name : 쿠키를 구별하는 이름
value : 쿠키에 저장할 실제 데이터
domain : 쿠키를 적용할 도메임
path : 쿠키를 적용할 경로
max age : 쿠키를 유지할 기간
속성 설정 메서드
void setValue(String value)
- 쿠키의 값을 설정
- 문자열을 입력(,; 같은 문자는 입력불가)
void setDomain(String domain)
- 쿠키에 적용할 도메일 설정
- 주 도메인만 적용하고 싶다면 “도메인” 형태로 기술
- 서브 도메인에도 적용하고 싶다면 “.도메인” 형태로 기술
- e.g) setDomain(“,nakja.co.kr”) –> www .nakja.co.kr 과 mail.nakja.co.kr 쿠키 적용
void setPath(String path)
- 쿠키가 적용될 경로를 지정
- 지정한 경로와 그 하위 경로에까지 적용
void setMaxAge(int expire_seconds)
- 쿠키가 유지될 기간을 초 단위로 설정
- 기간을 설정하지 않으면 웹 브라우저가 닫힐 때 쿠키도 삭제
setName()이 없는 이유
쿠키의 이름은 생성자를 통해 설정하고 생성 후에는 더 이상 이름을 변경할 수 없기 때문
new Cookie(String name, String value)
쿠키 정보 읽는 메서드
String getName()
- 쿠키의 이름을 반환
String getValue()
- 쿠키의 값을 반환
String getDomain()
- 쿠키가 적용되는 도메인을 반환
String getPath()
- 쿠키의 적용 경로를 반환
- 단, setPath()로 설정한 적이 없다면 null 반환
int getMaxAge()
- 쿠키의 유지 기간을 반환
- 단, setMaxAge()로 설정한 적이 없다면 -1 반환
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.