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/"
'Network' 카테고리의 다른 글
[GraphQL] GraphQL (0) | 2021.11.05 |
---|---|
[인증] 로그인 / 인증 / 암호화 / bcrypt (0) | 2021.10.13 |
[HTTP] HTTP란? / request & response / method / status code (0) | 2021.10.11 |
[인가] access token / JWT / 데코레이터 / 토큰 만료 시간 (0) | 2021.09.03 |
[HTTP] RESTful API (0) | 2021.09.02 |