본문 바로가기

Network

[HTTP] 쿠키 / 세션 / 웹스토리지 / 캐쉬 /프록시

1. 쿠키(cookie)

웹 브라우저가 웹사이트에서 보내온 정보를 저장할 수 있도록 하는 조그마한 파일

4KB까지 저장공간을 이용할 수 있음, 클라이언트의 브라우저 메모리 혹은 하드디스크에 저장

임의로 수정 및 삭제가 가능하므로, 사용자의 편의를 위하되 지워지거나 가로채이더라도 문제 없는 정보를 저장할 때 사용

쿠키 값을 웹브라우저에 설정하면 접속 할 때 마다 설정되었던 쿠키값을 서버에 전송하여, 사용자의 상태를 유지하고, 식별할 수 있다.

 

ex) 로그인창의 아이디 자동완성 기능 or 공지메세지 오늘 보지 않기 기능 or 로그인을 안한 상태로 장바구니 담기 기능

 

2. 세션(session)

웹 서버가 http 통신상에서 필요한 데이터를 저장, 서버에 저장되기 때문에 쿠키와 달리 사용자 정보가 노출되지 않음.

 

▶ 로그인 과정에서 쿠키와 세션

1) 로그인에서 ID & PW 입력

2) 서버에서 유저 확인 후 메모리에 사용자를 구분하기 위한 기한이 짧은 키 저장

3) 브라우저는 그 키를 쿠키로 저장

4) 브라우저가 이 사이트의 페이지들에 접속할 때마다 http 요청에 이 키를 실어서 전송 

 

★ 세션은 서버 메모리에 저장되지만 세션 역시 클라이언트 쿠키에 저장!

 

※ 로그인 후 쿠키를 모두 지우고 새로고침을 하면?

세션에는 로그인 정보가 있지만, 그 정보가 쿠키에서 삭제되어 있기 때문에 로그인이 해제!!

세션과 쿠키를 사용할 때는 적절하게 판단하여 사용하도록 함!!

개인정보가 쿠키를 통해 유출되어서도 안되지만, 세션을 남발하게 되면 서버에 부하가 걸리게 됨

3. 웹스토리지(Web Storage)

쿠키의 기능과 유사하지만, 5MB까지 저장 가능하고 세션 스토리지와 로컬 스토리지가 있다.

쿠키와 달리 서버에 전송되지 않으므로 서버에 부담이 가지 않음.

Key, Value의 형태로 데이터 저장

 

1) 세션 스토리지

탭/윈도우 단위로 생성, 각 세션마다 데이터가 개별적으로 저장, 새로고침시 데이터가 유지되지만 탭/윈도우를 닫을 시 데이터 삭제

글쓰기 에디터에서 자동 임시 저장 시 사용 가능

 

2) 로컬 스토리지

브라우저에 반영구적으로 데이터 저장, 브라우저를 종료해도 데이터 유지, 자동로그인 중 지속적으로 필요한 정보를 저장하기에 좋다.

 

4. 캐쉬(Cache) 

가져오는데 비용이 드는 데이터를 한번 가져온 뒤에는 임시로 저장.

한 번 웹사이트에서 다운로드 받았다면 이후에 접속 할 때 다운로드 할 필요없이 브라우저나 중계서버에 저장된 것을 읽기만 하면 된다.

하지만 캐쉬는 웹 브라우저 내용이 갱신 된다고 하더라도 알지 못한다. 그러므로 새로고침을 해줘야 한다.

* 캐쉬 관리 기술 : cache-control / pragma 

 

5.  Proxy

 

웹 브라우저와 서버 사이의 중계서버

클라이언트가 요청을 보냈을 때 Proxy 서버에서 서버에 접근하여 요청,응답 처리 후 클라이언트에게 다시 응답

중간 서버가 캐쉬를 대신하거나, 보안관 관련한 공격을 막아주거나, 적당한 사용자의 요청을 여러대의 서비스로 분산해주거나 하는 기능

 

 

▣ 출처

유튜브 "얄팍한 코딩사전"

유튜브 "생활코딩"

유튜브 "Taehoon"

책 "깔끔한 파이썬 탄탄한 백엔드"

블로그 "https://yang-wistory1009.tistory.com/28"

블로그 "https://linked2ev.github.io/devlog/2019/07/20/WEB-What-is-Proxy/

블로그 "https://it-eldorado.tistory.com/90"

블로그 "https://untitledtblog.tistory.com/47"