ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Web - Cookie & Session
    Web/Web 2021. 10. 19. 22:16

    HTTP의 특징

    HTTP의 특징

     

    Connectionless Stateless
     - 클라이언트가 요청을 한 후 서버측에서 응답을 받으면 그 연결을 끊어 버리는 성질  - 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나면서 상태정보를 유지하지 않는 성질

    ㆍ HTTP 프로토콜 환경은 Connectionless, Stateless 한 특성을 가지기 때문에 서버는 클라이언트가 누구인지 매번 확인해야 한다.

    ㆍ 이 특성을 보완하기 위해 Cookie와 Session을 사용하게 된다.


    Cookie란?

    Cookie의 정의

    ㆍ 웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일이다.

    ㆍ 서버가 사용자의 웹 브라우저에 저장하는 데이터를 말한다.

    ㆍ 데이터의 형태는 key와 value 쌍으로 구성되고 String 형태로 이루어져 있다.

     

    Cookie의 처리 과정

     

    1. 클라이언트가 서버 측에 요청(request)을 한다.

    2. 서버에서 cookie를 생성한 후 HTTP 헤더에 포함시켜 클라이언트 측에 응답(response)한다.

    3. 브라우저가 종료되어도 cookie 만료 기간이 유효하다면 클라이언트에서 보관하고 있는다.

    4. 클라이언트가 서버 측에 재요청(request)을 할 때 HTTP 헤더에 유효한 cookie를 함께 보낸다.

    5. 서버에서 cookie를 읽어 응답(response)을 한다.

     

    Cookie의 장점

    ㆍ 서버가 아닌 클라이언트에 저장되기 때문에 서버의 저장공간을 절약할 수 있다.

     

    Cookie의 단점

    ㆍ 방문했던 웹 사이트에 대한 정보가 기록되기 때문에 사생활을 침해할 소지가 있다.

    ㆍ 서버가 가지고 있는 것이 아니라 사용자에게 저장되기 때문에, 임의로 변경하거나 지울 수 있고, 가로채기도 쉬워 보안에 취약하다.


    Session이란?

    Session의 정의

    일정 시간 동안 같은 클라이언트로부터 들어오는 일련의 요구(request)를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이다.

    ㆍ 클라이언트의 요청에 따른 정보를 클라이언트 메모리에 저장하는 것이 아닌 웹 서버가 session id 파일을 만들어 서비스가 돌아가고 있는 서버에 저장하는 것이다.

     

    Session의 처리 과정

     

    1. 클라이언트가 서버 측에 요청(request)을 한다.

    2. 서버는 접속한 클라이언트에 대한 session 객체를 생성한다. (최초 1회)

    3. 서버는 응답(response)할 때 생성한 session id를 header를 통하여 클라이언트로 보낸다.

    4. 클라이언트는 서버에서 받은 session id를 클라이언트가 사용하는 메모리의 쿠키에 저장한다.

    5. 클라이언트가 재요청(request)을 하면 클라이언트는 쿠키에 저장한 session id를 서버에 전달한다.

    6. 서버는 전송받은 session id를 이용해 해당 session에 접근하여 작업한다.

     

    Session의 장점

    ㆍ 각 클라이언트에 고유한 session id를 부여한다.

    ㆍ session id를 통해 클라이언트를 구분해 클라이언트의 요구에 맞는 서비스를 제공해줄 수 있다.

    ㆍ 클라이언트 메모리에 저장하는 것이 아닌 서버에 저장하기 때문에 보안성이 우수하다.

     

    Session의 단점

    ㆍ 서버에 저장되기 때문에 서버에 처리를 요구하는 부하가 생긴다.

    ㆍ 서버에 저장되기 때문에 대용량의 저장공간을 필요로 한다.


    Cookie와 Session의 차이

      Cookie Session
    저장 위치  - 클라이언트의 웹브라우저가 지정하는 메모리 또는 하드디스크  - 서버의 메모리에 저장
    저장 형식  - Text  - Object
    만료 시점  - 쿠키 저장시 설정  - 정확한 시점 알 수 없음
    리소스  - 클라이언트의 리소스  - 서버의 리소스
    용량 제한  - 한 도메인 당 20개
     - 한 cookie 당 4KB
     - 제한 없음

     

    728x90

    'Web > Web' 카테고리의 다른 글

    Web - Web Server & WAS  (0) 2021.10.20
    Web - JWT란?  (0) 2021.10.19
    Web - RSA 암호화  (0) 2021.10.19
    Web - CIA  (0) 2021.10.19
    Web - 웹의 동작 원리  (0) 2021.10.19

    댓글

Designed by Tistory.