-
Network - 캐시/쿠키/세션CS/Network 2021. 2. 10. 21:07
캐시/쿠키/세션
캐시
-
리소스 파일들의 임시 저장소.
- 같은 웹 페이지에 접속할 때 사용자의 PC에서 로드하여 서버를 거치지 않아도 된다.
- 이전에 사용되었던 데이터는 다시 사용될 가능성이 높으므로 저장하여 페이지 로딩 속도를 개선한다.
쿠키/세션을 이용하는 이유
-
HTTP의 약점인 connetionless, stateless를 보완하기 위해서 사용한다.
-
계속 커넥션을 유지하지 않기 때문에 서버 리소스 낭비가 줄어드는 것은 큰 장점이지만, 통신할 때마다 새로 커넥션을 만들기 때문에 클라이언트 측면에서는 상태를 유지(인증 등)하기 위해 통신할 때마다 어떤 절차를 가져야 한다는 단점이 생긴다.
-
만약 쿠키와 세션이 없다면 어떤 페이지에서 다른 페이지로 넘어갈 때마다 인증을 다시 받아야 하는 것이다.
쿠키
-
클라이언트에 상태 정보를 저장한다.
-
통신 방법
-
클라이언트가 서버에게 페이지를 요청을 한다.
- 서버에서 클라이언트 요청에 쿠키가 없음을 판별하고 통신상태(user id, password등)를 저장한 쿠키를 응답한다.
- 클라이언트의 브라우저가 서버로부터 받은 쿠키를 저장한다.
- 다음 요청부터 HTTP header에 쿠키를 실어서 요청을 한다.
-
- 쿠키는 저장 개수와 크기가 한정적이며 클라이언트의 컴퓨터에 접근할 수 있다면 쉽게 값을 확인할 수 있다.
세션
- 서버에 저장되는 쿠키. 브라우저를 종료할 때까지 유지된다.
- 세션 내의 데이터를 탈취하는 것은 어려워 비교적 보안성이 높다.
- 통신 방법
- 클라이언트가 서버에 페이지를 요청하면 세션 ID를 발급한다.
- 서버에서는 클라이언트로 발급해준 세션 ID를 쿠키를 이용해서 저장하며 응답할때 세션 ID를 전달한다.
- 클라이언트는 다시 페이지에 접속할 때 전달받은 세션 ID를 요청 헤더에 추가하여 요청한다.
- 서버에서는 요청 헤더의 세션 ID값을 저장소에서 찾아보고 유효한지 확인 후 요청을 처리하고 응답한다.
- 서버의 자원을 사용하기 때문에 무분별하게 만들다보면 서버의 메모리가 감당할 수 없어질 수 있고 속도가 느려질 수 있다.
reference
chrisjune-13837.medium.com/web-%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98%EC%9D%B4%EB%9E%80-aa6bcb327582
'CS > Network' 카테고리의 다른 글
Network - VPN (0) 2021.02.21 Network - NAT (0) 2021.02.16 Network - HTTP (0) 2021.02.10 Network - TCP/UDP (0) 2021.02.10 Network - DNS (0) 2021.02.10 -