⚡쿠키 (Cookie)
쿠키의 경우 한마디로 말하면 사용자의 브라우저에 저장되는 정보이다. (내가 가지고 있는 정보)
키와 값 (key, value)가 들어 있는 작은 텍스트 데이터 파일이며, 이름, 값, 만료기간, 경로 정보가 존재한다.
사용자의 브라우저에 저장되는 정보이다 보니, 해당 pc를 사용한다면 누구나 쿠키의 정보를 쉽게 확인이 가능하다는 단점이 있다.
=> 보안성이 낮다
쿠키의 제약 조건
- 클라이언트 즉 사용자는 총 300개의 쿠키를 저장 가능하다. (몰라도 될듯...)
- 하나의 쿠키는 4KB 크기로 저장이 가능하다.
- 하나의 도메인당 20개의 쿠키를 가질 수 있다 (20개가 넘어가면 가장 적게 사용되는 것부터 삭제가 된다고 한다.)
쿠키 통신 방법
1) 최초에는 쿠키값이 존재 x , 클라이언트(사용자)는 Request를 한다.
2) 서버에서 클라이언트가 보낸 RequestHeader에 쿠키 존재 여부를 판단한다.
- 통신 상태(로그인 상태, 특정값 등등)를 저장한 쿠키를 응답한다.
3) 클라이언트의 브라우저가 받은 쿠키를 생성 및 보존.
4) 두 번째부터는 HTTP Header에 쿠키를 담아서 서버를 호출한다.
사용 예시
- 다른 사람이 보아도 보안상 문제가 되지 않는 부분에서만 사용이 가능하다.
ex) 장바구니, 팝업 확인 여부, 뷰 설정값 등이 있다. (사용자의 편의성에 많이 사용이 된다.)
⚡세션 (Session)
세션의 경우 쿠키와는 반대로 서버에 저장되는 정보이다. (서비스 제공자가 가지고 있는 정보)
쿠키에 보관하기 불편한 정보들을 가지고 있으며, 브라우저를 종료할 때까지 유지가 된다.
사용자의 브라우저에 저장되는 정보가 아닌 서버에 직접 저장이 되기 때문에 세션 내에 있는 데이터를 탈취하는 것은 어렵다.
=> 보안성이 높다.
세션 통신 방법
1) 클라이언트가 서버에 접속 시, 세션 ID를 발급한다.
2) 서버에서는 클라이언트로 발급해준 세션 ID를 쿠키를 이용해서 저장한다.
3) 클라이언트는 다시 페이지 접속할 때, 쿠키에 저장된 세션 ID를 서버에 전달한다.
4) 서버는 Request Header에 세션 ID로 클라이언트를 판별한다.
사용 예시
- 보통 특정 페이지를 돌아다닐 때 로그인 정보를 유지할 때 많이 사용한다.
예를 들어 로그인 뒤에 페이지를 계속해서 이동해도 로그인이 풀리지 않는 이유가 세션 때문이다.
⚡캐시 (Cache)
캐시란 웹뿐만 아니라 다양한 곳에서 쓰이는데 거의 공통적인 의미로 가져오는데 비용이 드는 데이터를 한번 가져온 뒤에는 임시로 저장해 둔다는 의미이다.
웹에서의 캐시는 브라우저가 동일한 주소로 요청하는 경우 첫 번째 요청의 결과를 로컬 PC의 캐시에 저장해준 뒤에, 두 번째 요청 시 서버에 접근하는 것 대신에 로컬 PC의 캐시를 가져오는 방식을 사용한다.
보통 요청의 결과 값은 이미지, 사진 파일, CSS, JS 등 변경사항이 크지 않고, 용량이 큰 파일들이다. 이런 데이터의 경우 다시 사용될 가능성이 높고 매번 다시 데이터를 가져오려면 시간이 오래 걸리기 때문에 캐시에 저장하고 다시 재사용을 하며, 페이징 로딩 속도가 빨라진다.
자주 변경되는 데이터를 캐시 방식으로 개발을 한다면 클라이언트는 이전 캐시에 저장된 값으로 인지해서 출력되기 때문에 항상 캐시를 인지하면서 사용해야 한다.
⚡생각
웹개발을 하고 있다면 한번씩은 들어본 단어라고 생각을 한다. 누군가는 내가 적은 내용을 모르는 경우도 있을 것이고 누구는 더 깊고 자세히 알고 있다. 혹시라도 잘 모른다면 매일 개발을 하면서 접하고 사용하는 기술이지만 왜 사용하며, 기본 정의가 어떻게 되는지 알면서 사용하자. 😅
'CS' 카테고리의 다른 글
[Git] git -f 명령어 위험성 공유 (0) | 2022.10.23 |
---|---|
네트워크에 대한 기본 개념 정리 (0) | 2022.10.12 |
HTTPS 개념 및 내용 정리 (0) | 2022.10.08 |
프로세스와 스레드에 대한 내용 정리 (0) | 2022.10.06 |
HTTP 대한 개념 및 내용 정리 (0) | 2022.10.04 |