: 웹사이트 접속 시 사용자의 브라우저에 저장되는 기록
- Why? 같은 사이트 재접속 시 사용자의 상태 유지(로그인 유지)를 위해 (HTTP의 Stateless를 보완하고자)
- What? 이름, 값, 유효기간, 도메인, 경로를 텍스트 파일로 저장함
HTTP는 무상태 프로토콜(stateless)로, 클라이언트와 서버의 연결 상태는 유지되지 않는다. 즉 파일 전송은 1번으로 제한되어있어 페이지 이동 시 다시 연결을 맺어야한다. 쿠키를 이용하면 접속한 곳을 식별하여 여러 웹페이지에서도 처리 가능하다. 즉 stateful 하게 된다.
ex) 로그인 했을때 해당 사이트의 로그인 상태(비번 제외)가 내 쿠키에 저장됨. 브라우저를 껐다 새로 켜도 로그인 상태 유지됨. 혹은 웹페이지 열람 이력이 저장되어 다음에 열었을때도 해당 페이지가 열림.
쿠키 생성 과정
특징
: 서버측에서 저장하는 클라이언트의 상태나 값(ex. 로그인 상태 정보)
- Why? 같은 사이트 재접속 시 사용자의 상태 유지(로그인 유지)를 위해 (HTTP의 Stateless를 보완하고자)
- What? 세션 ID, 세션 생성 시간, 세션의 최근 접근 시간을 저장함
웹브라우저가 요청시 서버에서 세션을 생성함. 이때, 서버측에서 클라이언트를 구분하고자 세션ID를 생성함. (이후 세션 ID는 쿠키를 통해서 서로 전달)
세션 생성 과정
특징
쿠키 | 세션 | |
---|---|---|
저장위치 | 클라이언트 | 서버 |
보안 | 보안 취약 | 보안이 강함 |
라이프 사이클 | 유효기간 설정가능, 브라우저 종료 시에도 유지 가능 | 유효기간 설정가능, 브라우저 종료시 삭제 |
속도 | 빠름 | 느림 (서버에서 전송해오기 때문에) |
: 사용자의 로컬 PC에 저장되는 웹사이트의 데이터들
- Why? 같은 사이트에 재접속시 중복되는 데이터를 빠르게 받기 위해서
- What? 주로 이미지 파일, css, js, 배너 등 변경 사항이 크지 않고, 용량이 큰 파일들을 저장함
캐시 생성 과정 :
특징
https://penguingoon.tistory.com/118
https://maivve.tistory.com/180
https://velog.io/@gwanuuoo/%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98-%EC%BA%90%EC%8B%9C%EB%9E%80
https://youngjinmo.github.io/2020/03/web-session-cookie-cache/