https://www.youtube.com/watch?v=OpoVuwxGRDI
세션은 사이트 이용자들의 중요 정보를 총괄하는 곳이다. 세션을 사용하는 사이트에 접속을 하면 서버에서는 사용자를 구분하기 위한 기한이 짧은 임시키 하나를 브라우저에 보내서 쿠키로 저장한다.
A라는 사용자가 사이트를 돌아다닐 때 사용자의 중요한 정보들은 이 사이트의 서버의 메모리나 데이터베이스에 저장된다.
브라우저가 이 사이트의 페이지에 접속할 때마다 http 요청에 이 키를 실어서 전송하고, 서버는 그 키를 보고 얘가 A 사용자구나 하고 인식해서 A의 정보들을 가공해서 응답으로 보내준다.
네이버에 한번 로그인하면 다른 네이버 페이지를 돌아다닐 때마다 로그인할 필요가 없는 것은 쿠키와 세션의 조합으로 내 컴퓨터에서 네이버에 로그인하고 있다는 걸 네이버 서버가 인지하기 때문에 가능하다.
네이버에 로그인 된 상태에서 브라우저에 네이버에 속한 모든 쿠키를 지우고 새로고침을 하면 로그아웃이 되어 있는 것을 확인할 수 있다.
서버에서는 세션에 나의 로그인 정보를 가지고 있지만 그게 내 것이라는 걸 증명할 세션 아이디가 내 쿠키에서 지워졌기 때문이다.
쿠키는 로그인 창을 자동완성 하거나, 공지 메시지를 하루 동안 안보게 하거나, 쇼핑몰 사이트에서 로그인하지 않은 상태에서 장바구니에 물건을 담을 수 있게 하는 등 사용자의 편의를 위하되 지워지거나 조작되거나 가로채여도 큰 문제가 없을 그런 수준의 정보들을 브라우저에 저장하는 데 사용된다.
그리고 사용자나 다른 누군가에게 노출되어서는 안되는, 서비스 제공자가 직접 관리해야 할 정보들은 세션으로 서버 내에서 다뤄지게 된다.
웹 개발자들은 사이트를 만들 때 이 정보는 쿠키에 저장할 지, 세션에 저장할 지 적절한 판단을 내릴 수 있어야 한다.
쿠키로 노출시켜서는 안되는 정보들이 있고, 그렇다고 세션을 남발하면 접속자가 많을 때 서버에 부하가 걸리니까.\
캐시란 개념은 웹 뿐만 아니라 컴퓨터의 메모리 부분이나 안드로이드 등 다양한 곳에서 쓰이는데 거의 공통적인 의미로, 가져오는데 비용이 드는 데이터를 한 번 가져온 뒤에 임시로 저장해두는 것이다.
웹 캐시는 이미지 등의 정보를 불러올 때 데이터 사용량도 발생하고 시간도 들기 때문에 사용자가 여러 번 방문할 법한 사이트에서는 한 번 받아온 데이터를 사용자의 컴퓨터 또는 중간 역할을 하는 서버에 저장해두는 것이다.
'프로그래밍 > IT 이것저것' 카테고리의 다른 글
라이브러리와 프레임워크의 차이점 (1) | 2024.02.06 |
---|---|
2TB 이상 외장하드 포맷 방법 (0) | 2023.09.06 |
docker container에서 명령어 실행 (0) | 2023.08.23 |
[오류] docker: Error response from daemon: pull access denied (0) | 2023.08.22 |
[오류] docker: Error response from daemon: Conflict. (0) | 2023.08.22 |