cookie, session, cache

rosyoon·2023년 2월 12일
0

프론트엔드 공부

목록 보기
24/34

쿠키(cookie)

사용자의 브라우저에 저장되고, 통신할 때 HTTP 헤더에 포함되는 텍스트 데이터 파일
이름, 값 만료기간(지정 가능), 경로 정보가 있고 키와 값으로 구성되어 있다.
해당 사용자의 컴퓨터를 사용한다면 누구나 쿠키에 입력된 값을 쉽게 확인할 수 있다.-> 보안성이 낮다

쿠키 통신 방법

  • 최초 통신에서는 쿠키값이 없으므로, 일단 클라이언트는 request를 한다.
  • 서버에서 클라이언트가 보낸 request header에 쿠키가 없음을 판별 -> 통신 상태(UserID, password, 조작상태, 방문횟수 등)를 저장한 쿠키를 response한다.
  • 클라이언트의 브라우저가 받은 쿠키를 생성/보존한다.
  • 두번째 연결부턴, http header에 쿠키를 실어서 서버에 request한다.

쿠키 제약 조건

  • 클라이언트는 총 300개의 쿠키를 저장할 수 있다.
  • 하나의 도메인 당 20개의 쿠키를 가질 수 있다 -> 20개가 넘으면 가장 적게 사용되는 것부터 삭제된다.
  • 하나의 쿠키는 4KB 저장 가능

쿠키 사용

  • 자동 로그인 유지, 위시 리스트 저장, 팝업 보지 않기, 사용자 이전 스크롤링이나 뷰 설정 값 등 유출 되어도 크게 문제되지 않는 데이터

세션(session)

서버에 저장되는 쿠키라고 할 수 있다.
주로 중요한 데이터를 저장할 때 사용한다.
브라우저를 종료할 때까지 유지된다.
사용자 로컬이 아닌 서버에 직접 저장되므로, 세션 내의 데이터를 탈취하는 것은 어렵다 -> 보안성이 비교적 높음
데이터를 메모리에 저장하는데 동시 접속하는 사용자가 많아지만 메모리 공간이 부족해져서 서버에 부하가 걸리는 등 문제가 발생할 수 있다.

세션 통신 방법

  • 클라이언트가 서버에 접속 시, 세션 ID를 발급한다.
  • 서버에서는 클라이언트에게 발급해준 세션 ID를 쿠키를 이용해서 저장
  • 클라이언트는 다시 페이지에 접속할 때, 쿠키에 저장된 세션 ID를 서버에 전달
  • 서버는 request header에 쿠키 정보(세션ID)로 클리이언트를 판별

세션 사용

  • 로그인 정보 유지
쿠키세션
저장위치클라이언트서버
보안변질 우려로 취약비교적 좋음
라이프 사이클만료기간 지정, 브라우저 종료 시에도 유지브라우저 종료시 삭제(기간 지정 가능하긴 함)
속도빠름느림(정보가 서버에 있어서)

캐시

리소스 파일들의 임시 저장소 같은 웨 페이지에 접속할 때 사용자의 PC에서 로드하므로 서버를 거치지 않아도 된다.
이전에 사용되었던 데이터는 다시 사용될 가능성이 높다 -> 그래서 다시 사용될 확률이 있는 데이터들을 빠르게 접근 가능한 저장소에 저장한다.
-> 페이지 로딩 속도를 개선한다. (이미지, 비디오, js, css 등)

  • 캐시 히트(cache hit) : cpu가 참조하려는 메모리가 캐시에 존재하고 있는 경우
  • 캐시 미스(cache miss) : 캐시 히트와 반대로, 메모리에 캐시가 없는 경우
  • 캐시 사용 : 홈페이지 재접속 시 css/js 파일을 사용자의 pc에서 로드, 서버를 거치지 않아도 된다.

0개의 댓글

관련 채용 정보