서버

쿠키(Cookie)&세션(Session)&캐시(Cashe)

민초부 2019. 11. 17. 15:18
반응형

˙ 시작하기 앞서 필요한 개념 

   - 기본적으로 Http는 stateless, connectionless  프로토콜의 특징을 가지고 있다. 즉 클라이언트가 서버에 요청(Request)를 했을 때 해당 요청에 대한 응답(Response)를 하고 연결을 끊어 이전의 데이터를 가지고 있지 않는다 

       (Http 1.1부터는 Keep-alive값으로 연결을 유지하고 값을 가지고 있게 Default로 설정되어 있다.)

  - 이에 대해 정보를 계속 유지하고 가지고 있기 위해 고안된 방법이 캐쉬, 쿠키 그리고 세션이다 

 

˙쿠키 

   - 사용자의 브라우저에 기본적으로 저장이 되고 통신시 HTTP헤더에 저장되어 있는 데이터 
   - 쿠키란 클라이언트 측에 저장되는 데이터로 클라이언트가 서버에 요청할 때 쿠키 정보를 전부 전달하게 되고 서버가 이를 사용하는 것임

   - 쿠키는 사용자 컴퓨터에 저장되기 때문에 브라우저를 닫아도 설정해놓은 유효시간 동안은 계속 유효하게 된다.

 

   - 통신 방법 :

      최초 통신시 쿠키값이 없으므로 클라이언트는 별도 저장된 쿠키 없이 Request한다 

      서버는 Request안에 쿠키값이 없는 것을 판별한 뒤 필요한 쿠키 값을  담아 Response한다 

      Response받은 클라이언트는 해당 쿠키 값을 생성 보존하며 그 이후의 Connection부터는 쿠키에 담아 Request한다.

   - 사용 특징 

      하나의 도메인당 20개의 쿠키를 가지고 있을 수 있으며 20개 이상부터는 사용 숫자가 작은 것부터 삭제된다.

 

˙세션 

   - 쿠키와 같은 개념이나 브라우저에 저장되는 것이 아닌 서버에 저장되어 유지되는 데이터이다.

       (서버에 저장되기 때문에 쿠키처럼 탈취가 용이한 편은 아니다.)

   - 세션은 서버 메모리에 데이터를 저장하고 있으며 브라우저 하나당 하나의 공간이 할당되기 때문에 브라우저를 닫으면 세션은 삭제된다. 

 

   - 통신 방법 : 

      클라이언트가 서버에 접속 시 세션 ID를 발급받고 서버는 발급해준 ID값을 서버 내부에 저장해놓는다.

      이 후 클라이언트는 서버에 접속할 때 쿠키에 저장된 세션 ID를 통해 세션 정보를 받아 쓸 수 있다.

   - 사용 특징 

     홈페이지 관리자의 Session ID를 탈취하여 서버에 전송, 관리자 권한을 취득하여 해킹하는 방법이 있다.

        -- 세션ID값이 들어왔을 때 IP값까지 같이 저장하여 기존 값과 비교, 판단하여 Response하게 하는 예방법이 있다. 

 

˙캐시

   - 캐시는 쿠키, 세션과 따로 구분되는 이유는 저장되는 개념만 같지 캐시는 일반적으로 리소스 파일(JS, CSS, 이미지) 등을 저장하는 개념이기 때문이다. 

   - 다시 사용될 가능성이 높은 이런 리소스 파일을 사용자 PC에 저장하여 후에 로드하므로 서버에 아예 접근하지 않는다.

반응형

'서버' 카테고리의 다른 글

Webpack부터 Kubernetes까지 (1) - Stream과 Node  (0) 2021.03.11
Node Express Module  (0) 2021.03.09
node js 시작하며  (0) 2021.03.08
[DRF] REST & REST API  (0) 2020.01.19
Web Server 그리고 WAS  (0) 2019.11.18