본문 바로가기

개발/서버관련

Session(세션) 과 Cookie(쿠키)

Web에서 사용하는 HTTP 프로토콜은 비연결적인 성격을 가졌다. 클라이언트가 새로운 요청을 보낼 때마다 새로운 접속이 이루어지고 이전 페이지와 현재 페이지는 연결되지 않았다. 그래서 웹 사이트는 특정 클라이언트가 머무르는 동안 특정한 상태(예를 들면 로그인 여부)를 지속시키기 위해 쿠키와 세션을 이용한다.

Cookie(쿠키)

우리가 웹 사이트를 로그인할 때, 아이디를 저장하겠습니까? 라는 체크박스에 체크를 해봤던 경험이 있을 것입니다. 여기에 체크를 하고 웹 사이트를 끄고 다시 켜면 자동으로 아이디가 입력돼있습니다. 이게 가능한 이유는 쿠키를 사용해서입니다. 이외에도 인터넷 쇼핑몰에서 장바구니, 알림창 아래 일주일간 보지 않기 체크 등에 사용됩니다.

 

쿠키는 클라이언트 측 브라우저에서 관리되는 기록정보 파일을 의미합니다. 그래서 크롬에서 특정 웹사이트 로그인 창에서 아이디 저장 체크를 선택한 후 종료하고 인터넷 익스플로러에서 로그인 창을 키면 아이디는 웹 브라우저가 다르기 때문에 자동으로 입력되어있지 않습니다

 

특징

1. 웹 브라우저를 끄더라도 유지된다. (지정된 쿠키 유효시간까지 유지됨)

2. 데이터는 Key와  Value로 구성되어 있고 String 형식으로 저장된다.

 

Session(세션)

개인소유의 컴퓨터가 아닌 경우 누구나 쿠키에 저장된 로그인 정보를 확인할 수 있기 때문에 쿠키를 이용해서 로그인 상태를 유지하면 보안상의 이슈가 발생할 수 있습니다. 그래서 로그인 상태를 유지하고자 할 때는 주로 Session을 사용합니다. 클라이언트가 웹 서버에 Request를 보내면 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는데, 이 ID를 세션이라고 부릅니다.

 

특징

1. 웹 브라우저 종료시 소멸된다.

2. 서버에 데이터가 저장된다.


이 둘의 가장 큰 차이점은 저장되는 위치입니다. 쿠키는 클라이언트 쪽에 저장돼서 서버가 요청하면 빠르게 데이터를 불러올 수 있습니다. 세션은 서버에 저장돼서 서버의 처리가 필요하므로 쿠키보다는 느리다는 단점이 있습니다. 하지만 보안면에서는 세션이 뛰어나므로 로그인 정보나 민감한 데이터는 세션을 이용해 처리합니다. 

반응형

'개발 > 서버관련' 카테고리의 다른 글

REST API 가 무엇인가?  (0) 2020.06.23
동기와 비동기 방식  (0) 2020.05.31
GET과 POST 방식  (0) 2020.05.31
인터넷 주소 체계과 웹의 동작 방식  (0) 2020.05.31
Web 이란? / App과의 차이점  (0) 2020.05.30