티스토리 뷰

연관 글 :

 

[Web] 웹브라우저, 웹서버 저장소 1. 쿠키(Cookie)

1. 쿠키(Cookie) 란?쿠키는 웹서버가 사용자의 웹 브라우저에 저장하는 작은 텍스트 파일이다.더 자세히 말하자면, stateless 특성을 가진 HTTP 통신을 stateful하게 만들기 위한 웹 브라우저의 저장소이

jimango.tistory.com

 

[Web] 웹브라우저, 웹서버 저장소 3. 웹 스토리지 - Local Storage, Session Storage

연관글: [Web] 웹브라우저, 웹서버 저장소 1. 쿠키(Cookie)1. 쿠키(Cookie) 란?쿠키는 웹서버가 사용자의 웹 브라우저에 저장하는 작은 텍스트 파일이다.더 자세히 말하자면, stateless 특성을 가진 HTTP 통

jimango.tistory.com

다른 웹 저장소에 대해 정리해놓은 글이므로 함께 보는 것을 추천한다!

 

1. 세션(Session) 이란?

세션은 쿠키와 동일하게 stateless 특성을 가진 HTTP 통신을 stateful하게 만들기 위한 웹 브라우저의 저장소이다.

웹 브라우저에 저장되는 쿠키와 달리 세션은 웹 서버에 저장하는 저장소를 말한다.

💡 stateless 이란?
각각의 요청을 독립적으로 취급하여 이전 요청이나 사용자의 상태 정보를 기억하지 않는 것

 

 

2. 세션의 장점

연관글에서 작성한 쿠키 포스팅에서 쿠키의 단점을 알아보았다. 그러한 단점을 보완할 수 있다는 점이 세션의 장점이다.

  • 민감한 정보들이 서버 내에서 관리되기 때문에 노출될 위험이 적다.
  • 쿠키는 매 요청마다 쿠키를 함께 전송하기 때문에 Network Overhead 가 커질 수 있지만 세션은 요청과 상관이 없기 때문에 네트워크 부하에도 영향을 미치지 않는다.
  • 브라우저가 아닌 서버 측에 저장하기 때문에 저장 내용에 대한 웹 브라우저간 공유가 가능하다.
    • 웹 브라우저간 공유가 가능하다는 것은 크롬을 사용하다가 파이어폭스를 사용해도 정보가 공유된다는 것

 

3. 세션의 활용

세션은 주로 사용자 인증 정보를 웹서버에 저장할 때 많이 사용한다.

따라서 인증 정보를 세션에 저장하고 활용하는 과정을 예시로 이해해보자.

  1. 사용자 인증 : 사용자가 서비스에 웹브라우저에서 로그인을 시도하면 서버는 사용자의 인증 정보를 검증한다.
  2. 세션, SID 생성 : 인증에 성공할 경우 해당 사용자의 세션을 생성하고, 고유한 세션ID(SID)를 발급한다.
  3. SID 쿠키에 저장 : 웹서버는 쿠키에 SID를 저장한다.
  4. 세션 유지 : 브라우저는 다음 요청부터 쿠키에 저장되어 있는 SID를 함께 보내고, 서버는 이 SID를 통해 사용자를 식별하여 세션에 접근하고, 필요한 작업을 진행한다.

웹서버내의 세션 스토리지로는 서버의 메모리를 사용하는 Session을 사용할 수도 있고, 메모리 기반 DB인 Redis를 활용할 수도 있다.

API를 호출할 때마다 세션을 조회해야하기 때문에 메모리 기반 DB인 Redis를 많이 사용한다.

또한 서버 메모리내에 저장하는 Session 대신 Redis를 사용하는 이유는 다음과 같다.

  • 서버가 재시작되어도 데이터가 유실되지 않는다.
  • 스케일 아웃을 할 때(서버의 개수를 늘릴 때) 서버 간의 세션 정보를 공유하기 용이하다.

 

4. 다른 웹 저장소와의 비교

구분 쿠키(Cookie) 세션(Session) 웹 스토리지(Web Storage)
저장 위치 웹 브라우저 웹 서버 메모리 또는 서버 측 저장소 웹 브라우저
설정 및 관리 주체 웹 서버 웹 서버 웹 브라우저(자바스크립트)
저장 가능 용량 적다(4KB) - 매 요청마다 쿠키를 보내기 때문에 네트워크 부하 방지를 위해 적은 용량 사용 상대적으로 많다(서버의 메모리 용량에 따라 상이) 쿠키보다 많다.(10MB)
사용 목적 식별 정보 저장, 추적 정보 저장 등 사용자 인증, 권한 확인 등 웹 브라우저의 저장소로 활용
보안 Secure, HTTPOnly, samesite로 제어 가능 상대적으로 안전 웹 브라우저에서만 접근 가능(스크립트 접근 가능)
브라우저간 공유 불가능 가능 불가능
성능 네트워크 부하에 영향을 미친다. 네트워크에는 영향이 없지만 서버 성능 저하에 영향을 미칠 수 있다. 네트워크에 부하에 거의 영향을 미치지 않는다.
범위 지정된 Domain + Path 에서만 유효 세션 ID에 해당하는 데이터 식별 지정된 Domain에서 모두 유효
만료 시간 설정 가능 설정 가능 설정 불가능

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함