본문 바로가기

코딩/html

쿠키와 세션

[ 쿠키(Cookie) ]
- 클라이언트 로컬에 저장되는 키와 값이 들어있는 파일
- 이름, 값, 유호 시간, 경로 등을 포함
- 클라이언트의 상태 정보를 브라우저에 저장하여 참조

*구성 요소
- 쿠키의 이름(name)
- 쿠키의 값(value)
- 쿠키의 만료시간(Expires)
- 쿠키를 전송할 도메인 이름(Domain)
- 쿠키를 전송할 경로(Path)
- 보안 연결 여부(Secure)
- HttpOnly 여부(HttpOnly)

*동작 방식
1. 웹브라우저가 서버에 요청
2. 상태를 유지하고 싶은 값을 쿠키(cookie)로 생성
3. 서버가 응답할 때 HTTP 헤더(Set-Cookie)에 쿠키를 포함해서 전송
4. 전달받은 쿠키는 웹브라우저에서 관리하고 있다가, 다음 요청 때 쿠키를 HTTP헤더에 넣어서 전송
5. 서버에서는 쿠키 정보를 읽어 이전 상태 정보를 확인한 후 응답

*쿠키 사용 예
- 아이디/비밀번호 저장
- 쇼핑몰 장바구니

[ 세션(Session) ]
- 일정 시간 동안 같은 브라우저로부터 들어오는 요청을 하나의 상태로 보고 그 상태를 유지하는 기술
- 웹 브라우저를 통해 서버에 접속한 이후부터 브라우저를 종료할 때까지 유지되는 상태

*동작 방식
1. 웹브라우저가 서버에 요청
2. 서버가 해당 웹브라우저(클라이언트)에 유일한 ID(Session ID)를 부여함
3. 서버가 응답할 때 HTTP 헤더(Set-Cookie)에 Session ID를 포함해서 전송
   쿠키에 Session ID를 JSESSIONID 라는 이름으로 저장
4. 웹브라우저는 이후 웹브라우저를 닫기까지 다음 요청 때 부여된 Session ID가 담겨있는 쿠키를 HTTP 헤더에 넣어서 전송
5. 서버는 세션 ID를 확인하고, 해당 세션에 관련된 정보를 확인한 후 응답

*세션 사용 예
- 로그인

[ 쿠키와 세션의 차이점 ]
*저장 위치
쿠키 : 클라이언트
세션 : 서버

*보안
쿠키 : 클라이언트에 저장되므로 보안에 취약하다.
세션 : 쿠키를 이용해 Session ID만 저장하고 이 값으로 구분해서 서버에서 처리하므로 비교적 보안성이 좋다.

*라이프사이클
쿠키 : 만료시간에 따라 브라우저를 종료해도 계속해서 남아 있을 수 있다.
세션 : 만료시간을 정할 수 있지만 브라우저가 종료되면 만료시간에 상관없이 삭제된다.

*속도
쿠키 : 클라이언트에 저장되어서 서버에 요청 시 빠르다.
세션 : 실제 저장된 정보가 서버에 있으므로 서버의 처리가 필요해 쿠키보다 느리다.

[ 출처 ]
https://doooyeon.github.io/2018/09/10/cookie-and-session.html
https://hahahoho5915.tistory.com/32



'코딩 > html' 카테고리의 다른 글

크로스 브라우징  (0) 2019.08.21
절대경로와 상대경로  (0) 2019.04.11
조건부주석 및 ie에서만 스타일적용  (0) 2019.01.11