📌 HTTP 프로토콜의 약점 또는 특징을 보완하기 위해 사용
HTTP는 클라이언트가 서버에 요청(Request)을 보내고, 서버는 클라이언트에게 응답(Response)을 보낸 후 연결(Connection)을 끊는 특성을 가짐.
비연결지향이라는 커넥션을 유지하지않는 특성 때문에 서버 리소스 낭비가 줄어드는 것은 장점이지만, 실제로는 데이터 유지가 필요한 경우가 많다.
HTTP는 이 두가지 특성을 보완하기 위해서 쿠키와 세션을 사용하게 되었다.
커넥션이 유지되지 않으면, 페이지를 이동할 때마다 로그인을 다시하고,
장바구니에 아무리 상품을 담아도 구매페이지에는 저장이 되지않을 수 있다.
구분 | 세션쿠키(Session Cookie) | 지속쿠키(Persistent Cookie) |
---|---|---|
만료 기간 | 정하지 않았을 때 | 지정했을 때 |
브라우저 종료시 | 쿠키는 사라짐 | 쿠키는 남아있음 |
저장 위치 | 메모리 | 파일 |
보안성 | 보안에 유리함 | 보안에 취약함 |
(최초 접속시)
사용자의 별도 요청이 없어도 자동으로 헤더에 쿠키를 넣어서 요청한다.
또한, 모든 요청에 그 많은 쿠키값을 넣도록 비효율적으로 동작 하지않음.
도메인 설정을 통해 지정한 도메인으로 요청할 때만 쿠키 값이 제공되도록 할 수 있다.
📌
위시리스트 저장
팝업 보지 않기(오늘 하루 이 창을 다시보지 않기)
쇼핑몰의 장바구니 / 위시리스트 (비 로그인 상태에서 장바구니에 담은 품목이 로그인 이후에도 유지되는 등)
서버(Server)에 클라이언트의 상태 정보를 저장하는 기술로 논리적인 연결을
세션이라고 한다. (특정 접속자 식별 도구)
📌
로그인 정보 유지 (은행의 경우 n초 뒤에 사이트에서 자동으로 로그아웃 됩니다.)
로그인 후 웹사이트에서 오래 동작하지 않을 시 세션 만료로 자동 로그아웃
🔍 쿠키와 세션 비교
쿠키 세션 정보저장위치 로컬, 서버의 자원 사용 X 서버 보안 약함 (변질, 요청/응답 시 스니핑 우려) 뛰어남 (ID만 저장하고 서버에서 처리함) 라이프사이클 만료기간 지정, 브라우저 종료시에도 유지 브라우저 종료시 삭제 속도 쿠키에 정보가 있어서 속도가 빠름 서버에 정보가 있어서 처리가 필요해 속도가 노림
보안상 취약한 쿠키를 사용하는 이유는 ❓
👉 서버 성능에 부담을 주지 않기 위해서.
캐시는 리소스 파일들(CSS, JS, 이미지, 비디오)의 임시 저장소이다.
웹 페이지를 빠르게 렌더링 할 수 있도록 웹 페이지 요소들을 임시 저장.
같은 웹 페이지에 접속할 때 사용자의 PC에서 로드하므로 서버를 거치지 않고 빠르게 불러올 수 있다.
https://dev-coco.tistory.com/61
https://ryusae.tistory.com/7
https://jeong-pro.tistory.com/80
https://homzzang.com/b/free-1208
https://dodeon.gitbook.io/study/kimyounghan-http-basic/07-http-header/cookie
👇 이해를 쉽게 돕는 참고하면 좋을 영상
https://www.youtube.com/watch?v=OpoVuwxGRDI