티스토리 뷰
쿠키와 세션
쿠키
클라리언트(브라우저) 로컬에 key-value 쌍을 저장되는 데이터 팡리이다. 유효시간 내에서는 브라우저가 종료되어도 계속 유지된다.
세션
브라우저가 종료되거나, 서버에서 해당 세션을 삭제할 수 있기 때문에 쿠키보다 보안성이 좋다. 또한 서버에 데이터를 저장하므로 서버 용량이 허용하는 한에서 제한 없이 데이터를 저장할 수 있다는 장점이 있지만 서버의 부하가 커진다는 단점이 될 수 있다.
쿠키와 세션을 사용하는 이유: HTTP의 connectionless, stateless
클라리언트가 요청을 했을 때 그 요청에 맞는 응답을 보낸 후 연결을 끊고, 서버는 클라이언트에 대한 상태 정보를 유지하지 않기 때문에 알 수 없게 된다.
쿠키(cookie)
쿠키의 생성과 저장은 구현에 따라 다르지만 원리는 동일하다.
- 서버가 클라이언트로부터 요청을 받았을 때, 클라이언트에 관한 정보를 토대로 쿠키를 구성한다.
- 서버는 클라이언트에게 보내는 응답의 헤더에 쿠키를 담아 보낸다.
- 클라이언트가 응답을 받으면, 브라우저는 쿠키를 쿠키 디렉터리에 저장한다.
세션(session)
세션은 기본적으로 쿠키를 이용하여 구현이 된다.
- 클라이언트를 구분하기 위해 각 클라이언트에게 session ID를 부여하고 클라이언트는 쿠키에 session ID를 저장해 둔다.
- 사용자 정보를 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에 저장하여 관리한다.
- 세션은 유효시간을 두어 일정 시간 응답이 없다면 끊을 수 있고, 브라우저가 종료될 때까지 인증상태를 유지할 수 있다.
✖️ 사용자 정보를 서버에 두기 때문에 쿠키보다 보안은 좋지만 서버 자원을 차지하기 때문에 서버에 과부하를 줄 수 있고 성능 저하의 요인이 될 수 있다.
'CS > 컴퓨터네트워크' 카테고리의 다른 글
HTTP 요청방법중 GET과 POST에 대해 비교 설명해주세요. (0) | 2023.07.07 |
---|---|
쿠키와 세션을 이용한 로그인 방식을 설명해주세요. (0) | 2023.07.07 |
만약 www.naver.com으로 브라우저에서 접근하여 화면이 본인에게 나오기까지의 과정을 네트워크 관점에서 설명해주세요. (0) | 2023.07.07 |
HTTP에 대해 설명하고 추가로 HTTPS에 대해서도 말씀해주세요 (0) | 2023.07.07 |
3-way handshake는 무엇이고 각 과정은 어떻게 되나요? (0) | 2023.07.05 |