서버 & 네트워크
쿠키와 세션
자바지기
2021. 9. 10. 19:00
반응형
HTTP 프로토콜은 서버-클라이언트 통신 시 stateless 방식으로 통신을 한다.
stateless 방식을 쉽게 말하면 브라우저에서 통신이 끝나면 상태를 유지하지 않으므로 새 웹 페이지를 열 때 기존 웹페이지나 서블릿에 관한 어떤 연결 정보도 알 수 없는 방식이다.
따라서 클라이언트 입장에서 웹 페이지 사이의 상태나 정보를 공유하려면 세션 트래킹이라는 웹 페이지 연결 기능을 구현해야한다. 세션 트래킹은 서블릿끼리 상태나 정보를 공유하는 웹 페이지 연결 기능이다.
세션 트래킹 기능에는 쿠키와 세션이 있다.
하나씩 살펴보자
쿠키
쿠키란 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 필요할 때 여러 웹 페이지들이 공유해서 사용할 수 있도록 매개 역할을 하는 방법이다.
쿠키의 특징:
- 클라이언트 PC에 저장된다.
- 보안이 취약하다
- 웹사이트당 하나의 쿠키가 만들어진다.
쿠키 사용의 예:
'오늘 더 이상 보지 않기' 등의 팝업창이 나타나지 않게 하는 경우
쿠키의 실행 과정:
- 클라이언트가 브라우저로 사이트에 접속
- 서버가 정보를 저장한 쿠키를 생성
- 생성된 쿠키를 브라우저로 전송
- 브라우저는 쿠키 파일을 저장
- 브라우저가 재접속하면 서버가 브라우저에게 쿠키 전송을 요청
- 브라우저가 서버에게 쿠키 전송
- 서버가 쿠키 정보를 이용해 작업 실행
세션
쿠키란 웹 페이지들 사이의 공유 정보를 서버에 저장해 놓고 필요할 때 여러 웹 페이지들이 공유해서 사용할 수 있도록 매개 역할을 하는 방법이다.
세션의 특징:
- 서버의 메모리에 저장된다
- 따라서 보안에 유리하다
- 그러나 서버에 부하를 줄 수 있다.
- 브라우저당 1개의 세션이 생성된다.
세션의 실행 과정:
- 클라이언트가 브라우저로 사이트에 접속
- 서버가 브라우저에 대한 세션 객체 생성
- 서버가 생성된 세션id를 브라우저에 응답
- 브라우저는 세션 id를 브라우저 메모리의 세션 쿠키에 저장
- 브라우저가 재접속하면 브라우저 세션 쿠키에 저장된 세션 id를 서버로 전송
- 서버가 전송된 세션 id를 통해 해당 세션에 접근하여 작업 실행
반응형