ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Network - 캐시/쿠키/세션
    CS/Network 2021. 2. 10. 21:07

    캐시/쿠키/세션

     

    캐시

    • 리소스 파일들의 임시 저장소.

    • 같은 웹 페이지에 접속할 때 사용자의 PC에서 로드하여 서버를 거치지 않아도 된다.
    • 이전에 사용되었던 데이터는 다시 사용될 가능성이 높으므로 저장하여 페이지 로딩 속도를 개선한다.

     

    쿠키/세션을 이용하는 이유

    • HTTP의 약점인 connetionless, stateless를 보완하기 위해서 사용한다. 

    • 계속 커넥션을 유지하지 않기 때문에 서버 리소스 낭비가 줄어드는 것은 큰 장점이지만, 통신할 때마다 새로 커넥션을 만들기 때문에 클라이언트 측면에서는 상태를 유지(인증 등)하기 위해 통신할 때마다 어떤 절차를 가져야 한다는 단점이 생긴다.

    • 만약 쿠키와 세션이 없다면 어떤 페이지에서 다른 페이지로 넘어갈 때마다 인증을 다시 받아야 하는 것이다. 

     

    쿠키

    • 클라이언트에 상태 정보를 저장한다.

    • 통신 방법

      1. 클라이언트가 서버에게 페이지를 요청을 한다.

      2. 서버에서 클라이언트 요청에 쿠키가 없음을 판별하고 통신상태(user id, password등)를 저장한 쿠키를 응답한다.
      3. 클라이언트의 브라우저가 서버로부터 받은 쿠키를 저장한다.
      4. 다음 요청부터 HTTP header에 쿠키를 실어서 요청을 한다.
    • 쿠키는 저장 개수와 크기가 한정적이며 클라이언트의 컴퓨터에 접근할 수 있다면 쉽게 값을 확인할 수 있다.

     

    세션

    • 서버에 저장되는 쿠키. 브라우저를 종료할 때까지 유지된다.
    • 세션 내의 데이터를 탈취하는 것은 어려워 비교적 보안성이 높다.
    • 통신 방법
      1. 클라이언트가 서버에 페이지를 요청하면 세션 ID를 발급한다.
      2. 서버에서는 클라이언트로 발급해준 세션 ID를 쿠키를 이용해서 저장하며 응답할때 세션 ID를 전달한다.
      3. 클라이언트는 다시 페이지에 접속할 때 전달받은 세션 ID를 요청 헤더에 추가하여 요청한다.
      4. 서버에서는 요청 헤더의 세션 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

    interconnection.tistory.com/74

    jeong-pro.tistory.com/80

    '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

    댓글

Designed by Tistory.