< 쿠키 >
①.쿠키(cookie)?
1) 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
2) 쿠키는 세션과 달리 상태 정보를 웹 서버가 아닌 클라이언트에 저장된다.
- 예를 들어 어떤 웹사이트를 처음 방문한 사용자가 로그인 인증을 하고 나면 아이디와 비밀번호를 기록한 쿠키가 만들어지고 그 다음부터 사용자가 그 웹 사이트에 접속하면 별도의 절차를 거치지 않고 쉽게 접속할 수 있다.
3) 클라이언트의 일정 폴더에 정보를 저장하기 때문에 웹 서버의 부하를 줄일 수 있다는 것이 장점 이다.
4) 웹 브라우저가 접속했던 웹 사이트에 관한 정보와 개인 정보가 기록되기 때문에 보안에 문제가 있을 수 있다.
< ②.쿠키의 동작 과정 >
1) 쿠키 생성 단계 :주로 웹 서버 측에서 생성한다. 생성된 쿠키는 응답 데이터와 함께 저장되어 웹 클라이언트에 전송 된다.
2) 쿠키 저장 단계 :웹 브라우저는 응답 데이터에 포함된 쿠키를 쿠키 저장소에 보관한다. 쿠키는 종류에 따라 메모리나 파일로 저장된다.
3) 쿠키 전송 단계 :웹 브라우저는 한 번 저장된 쿠키를 요청이 있을때 마다 웹 서버에 전송 한다.
웹 서버는 웹 브라우저가 전송한 쿠키를 사용하여 필요한 작업을 수행할 수 있다.
<③.Cookie class의 메서드 종류 >
메소드 | 반환 유형 | 설명 |
getComment() | String | 쿠키에 대한 설명을 반환 |
getDomain() | String | 쿠키의 유효한 도메인 정보를 반환 |
getMaxAge() | int | 쿠키의 사용 가능 기간에 대한 정보를 반환 |
getName() | String | 쿠키의 이름을 반환 |
getPath() | String | 쿠키의 유효한 디렉터리 정보를 반환 |
getSecure() | boolean | 쿠키의 보안 설정을 반환 |
getVersion() | int | 쿠키의 버전을 반환 |
setComment(String) | void | 쿠키에 대한 설명을 설정 |
setDomain() | void | 쿠키의 유효 기간을 설정 |
setPath() | void | 쿠키의 유효한 디렉터리를 설정 |
setSecure() | void | 쿠키의 보안을 설정 |
setValue() | void | 쿠키의 값을 반환 |
setVersion() | void | 쿠키의 버전을 설정 |
< 세션 >
①.세션(cookie)?
1) 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
- 예를 들면 웹 쇼핑몰에서 장바구니나 주문 처리와 같은 회원 전용 페이지의 경우 로그인 인증을 통해 사용 권한을 부여
- 다른 웹 페이지에 갔다가 되돌아와도 로그인 상태가 유지되므로 회원 전용 페이지를 계속 사용할 수 있다.
- 이렇게 사용자 인증을 통해 특정 페이지를 사용할 수 있도록 권한 상태를 유지하는 것
2) 웹 서버에서만 접근이 가능하므로 보안 유지에 유리하며 데이터를 저장하는데 한계가 없다.
3) 오직 웹 서버에 존재하는 객체로 웹 브라우저마다 하나씩 존재하므로 웹 서버의 서비스를 제공받는 사용자를 구분하는 단위가 된다.
4) 웹 브라우저를 닫기 전까지 웹 페이지를 이동하더라도 사용자의 정보가 웹 서버에 보관되어 있어 사용자 정보를 잃지 않는다.
< 쿠키와 세션의 차이 >
메소드 | 쿠키 | 세션 |
사용 클래스 | Cooke 클래스 | HttpSession 인터페이스 |
저장 형식 | 텍스트 형식 | Object형 |
저장 장소 | 클라이언트 | 서버(세션 아이디만 클라이언트에 저장) |
종료 시점 | 쿠키 저장시 설정(설정하지 않을 경우 웹 브라우저 종료 시 소멸) |
정확한 시점을 알 수 없다 |
리소스 | 클라이언트의 리소스 사용 | 서버의 리소스 사용 |
보안 | 클라이언트에 저장되므로 사용자의 변경이 가능하여 보안에 취약 |
서버에 저장되어 있어 상대적으로 안정적 |
출처: 인터넷프로그래밍 교안
'Developer 지식' 카테고리의 다른 글
서버프로그램 구현 (0) | 2023.05.22 |
---|---|
스프링과 스프링부트 (0) | 2023.05.16 |
오버라이딩과 시그니처의 연관성 (0) | 2023.05.14 |
숫자 리터럴(literal) (0) | 2023.05.14 |
PDT,UDDT/기본자료형,사용자 정의 자료형 (0) | 2023.05.14 |