[TIL]- 쿠키와 세션(cookie, session)

rjsdnql123·2020년 7월 30일
0

쿠키와 세션을 공부하기 전에 알아야될 HTTP 특징이 있다.
HTTP 프로토콜은 connectionless, stateless한 특성이 있기 때문에 쿠키와 세션이 필요하다.


-connectionless
클라이언트가 서버에 요청을 한후 응답을 받으면 그 연결을 끊어 버리는 특성

-stateless
통신이 끝가게 되면 상태를 유지하지 않는 특징
연결을 끊으면 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있다.

HTTP의 두가지 특징 때문에 쿠키와 세션을 이용하게 되는데 쿠키와 세션을 이용하지 않는다면 velog메인 페이지에서 로그인 한후 글쓰기 버튼을 눌러 글을 쓰려 할때 다시 로그인을 해야하는 일이 발생한다. 즉, 페이지를 이동할때 마다 상태를 유지하지 않기 때문에 로그인 정보가 사라져 계속 로그인을 반복해야 한다.


-쿠키(cookie)

쿠키는 클라이언트의 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일이다.
쿠키에는 이름, 값, 만료날자,경로 정보들이 들어있다.
쿠키는 클라이언트의 상태 정보를 로컬에 저장했다가 참조한다.
쿠키는 일정시간동안 데이터를 저장할수 있다.

-쿠키의 작동

1.브라우저(크롬, 파이어폭스)가 웹페이지에 접속한다.
2.클라이언트가 요청한 웹퍼이지를 랜더링 하면서 쿠키를 클라이언트 로컬(하드)에 저장한다.
3. 클라이언트가 재 요청시 웹 페이지 요청과 함께 쿠키값도 전송한다.
4. 지속적으로 로그인 정보를 가지고 있는 것처럼 활용할수 있다.

쿠키의 사용

자동로그인, 오늘 더이상 이 창을 보지않음, 쇼핑물의 장바구니에 임시 저장 등..


-세션(session)

일정 시간동안 같은 브라우저로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 유지하는 기술, 즉 웹 브라우저를 통해 웹 서버에 접속한 이후로 브라이저를 종료할 때 까지 유지되는 상태
세션을 쿠키를 기반으로 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버측에 저장해 관리한다.

세션은 만료시간을 정할 수 있지만 브라우저가 종료 된다면 만료시간과 상관없이 삭제된다.

세션의 작동

1.클라이언트가 서버에 접속시 세션 ID를 발급받는다.
2. 서버에서는 클라이언트로 발급해준 세션 ID를 쿠키를 사용해 저장
3. 클라이언트는 다시 접속할 때, 이 쿠키를 이용해서 세션ID값을 서버에 전달.
즉, 세션을 구별하기 위해 ID가 필요하고 그 ID만 쿠키에 이용해서 저장해 놓는다. 쿠키는 자동으로 서버에 전송되니까 서버에서 세션아이디에 따른 처리를 할 수 있음.

세션의 사용

게시판에 글을 작성할 때 작성 버튼을 누르면 세션에 있는 아이디를 참조해서 작성자를 지정하게 한다.
로그인 정보 유지


쿠키와 세션의 차이, 마무리

쿠키와 세션을 공부하면서 쿠키와 세션을 서로 다른것. 둘다 독립적인 것. 이라고 생각해 좀더 어려움을 겪었던거 같다. 쿠키와 세션을 서로 다르지만 비슷한 역할을 하고 동작 원리도 비슷하다. 그 이유는 세션을 사용할 때, 결국 쿠키도 함께 사용하기 때문이다.
가장큰 차이점을 정보를 저장하는 위치로 쿠키는 클라이언트에 파일로 저장하고 세션은 서버에 저장한다. 보안 면에서는 쿠키보다 세션이 더 우수하지만 속도면에서는 쿠키가 더 우수하다. 그 이유에는 쿠키는 클라이언트의 로컬에 저장하지만 세션은 서버에 저장하기 때문에 서버에 요청이 필요하기 때문이다.

0개의 댓글