우리가 알게 모르게 많이 사용하는 쿠키에 대해서 알아보자.
보통 사용처는
사용자 로그인 세션 관리 / 광고 정보 트래킹에 많이 쓰인다.
쓰는 이유는 무엇일까?
우리가 네이버에 로그인 하면 XXX님 어서오세요. 와 같이
내가 누구인지 띄워주곤 한다.
이러한 정보를 페이지에 접근할 때마다 '내가 누구인지' 요청에 하나하나 담아서 보내야할까?
당연히 번거롭고 좋은 방안이 아니라는 생각이 든다.
(예를 들어, 내가 친구한테 전화하는데 전화할 때마다 누군지 안 떠서 내가 누구인지 말하는 것과, 친구 핸드폰에 내 이름이 떠서 한번에 아는 건 다르다)
따라서 쿠키를 사용하여 기본적으로 요청에 내가 누구인지 늘 알 수 있는 데이터를 서버로 넘어가도록 한다면
(상황에 따라) 더 효율적이라고 볼 수 있다!
쿠키의 정보는 항상 서버로 전송한다.
따라서 네트워크 트래픽이 추가로 유발 되니 최소한의 정보만 사용해야만 한다.
만약 전송하지 않고 웹 브라우저에 저장하고 싶다면 localStorage나 sessionStorage를 사용하면 된다.
주의할 점은 보안에 민감한 데이터는 저장하면 안된다는 것이다!!
쿠키 관련 헤더는 아래와 같다.
- Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답)
- Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달
또한 쿠키는 생명 주기(만료시간), 어느 도메인에 적용할지,
어느 경로에서만 적용할지, 그리고 보안 설정 등을 설정할 수 있다.
(https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies)
이번엔 캐시에 대해서 알아보자.
우리가 네이버에 접근할 경우 많은 이미지와 텍스트를 포함한 각종 수많은 정보들이 넘어온다.
근데 우리가 바로 네이버에 5초 뒤에 다시 들어갈 경우 그 정보들을 다 새롭게 불러와야할까? 답은 아니다 이다.
이런 경우 캐시를 사용하여 네트워크 트래픽을 줄일 수 있다.
캐시는 쉽게 말해 변화가 자주 일어나지 않는 데이터를 웹 브라우저에 저장하여 원하는 경우 꺼내다 쓰는 방법이라 보면 된다.
이를 이용하면 트래픽도 줄이고, 불러오는 속도도 빨라지며 사용자 경험이 빨라지는 효과를 가져올 수 있다.
하지만 영원히 보관하는 것은 효율적이지 않다.
유효 기간을 설정하면 해당 유효 기간이 지날 경우, 브라우저는 캐시를 삭제하고 서버에 재요청하여 가져오게 된다.
하지만...! 이런 의문이 들 수 있다.
유효 기간이 지났음에도 서버에 있는 그림 파일이 그대로라면? 그럼 비효율적이지 않을까?
따라서 이를 방지하기 위해 해당 그림 파일이 언제 최종 수정되었는지(Last-Modified)를 체크한다거나
해당 그림 파일 자체가 예전과 같은 파일인지(Etag)를 체크하여 더 효율적인 네트워크 통신을 할 수 있다.
또한 캐시 역시 사용자의 브라우저에 저장되면 안되는 데이터가 있을 수 있다.
이 경우에는 Cache-Control : no-store 와 같이 설정하여 저장하지 않도록 할 수 있다.
그 외 항상 서버에 검증을 한 번 하고 넘어가게(Cache-Control : no-cache)하는 것도 가능하다.
'IT 공부 > 새로운 시작' 카테고리의 다른 글
내맘대로 작성할 apache tips. (0) | 2023.11.01 |
---|---|
HTTP(15) - HTTP 헤더(3) 전송 방식, 일반 정보, 특별한 정보 (0) | 2021.12.14 |
HTTP(14) - HTTP 헤더(2) (0) | 2021.12.07 |
HTTP(13) - HTTP 헤더(1) (0) | 2021.11.10 |
HTTP(12) - HTTP 상태 코드(2) (0) | 2021.11.06 |
댓글