무한루프/개발, 업무

HTTP와 세션 : 쿠키를 활용한 인증 방식

시원한생맥주 2025. 3. 8. 12:27

 

HTTP와 세션 : 쿠키를 활용한 인증 방식

 

HTTP 세션과 쿠키
HTTP 세션과 쿠키

 

HTTP는 비연결 구조다

 

HTTP는 한 번 요청을 받고 응답을 보낸 후 연결을 끊어버리는 비연결(stateless) 방식이다.

그렇다면 로그인 정보나 장바구니 정보와 같은 클라이언트 기반 데이터는 어떻게 유지될까?

 

정답은 서버 측에 저장하는 것이다.

서버의 session 객체에 로그인 정보나 장바구니 정보를 담아두고,

이후 요청이 올 때 이를 참조하여 사용자 상태를 유지한다.

 

세션과 쿠키의 역할

 

HTTP는 연결을 유지하지 않으므로, 요청이 들어올 때마다 서버는 사용자의 세션 정보를 찾아야 한다.

그러나 서버 입장에서는 수많은 사용자가 동시에 접속하기 때문에,

누구의 세션인지 확인할 방법이 필요하다.

 

이를 해결하기 위해 세션 ID(Session ID)가 사용된다.

세션 ID는 각 사용자의 세션을 식별하는 고유한 값으로, 보통 쿠키(Cookie)에 저장된다.

 

쿠키란?

 

쿠키는 브라우저에 저장되는 작은 데이터 조각이다.

즉, 사용자의 컴퓨터(클라이언트)에 저장되는 작은 텍스트 파일이다.

반면, 세션(Session)은 서버의 메모리에 존재하는 객체이다.

 

쿠키와 세션의 관계

  1. 사용자가 웹사이트에 로그인하면, 서버는 해당 사용자에 대한 세션을 생성한다.
  2. 서버는 세션 ID를 생성하고, 이를 쿠키에 저장하여 클라이언트에 전달한다.
  3. 이후 클라이언트가 요청을 보낼 때마다 쿠키를 함께 전송하여 서버가 세션 정보를 찾아 인증을 수행한다.

이 방식 덕분에 사용자는 로그인 상태를 유지할 수 있다.

 

세션 ID를 이용한 인증 테스트

  1. 쿠키 편집 도구 설치
    • 크롬 확장 프로그램 "Edit This Cookie"를 설치한다.
  2. 로그인 후 쿠키 확인
    • 원하는 사이트에 로그인한 후, "Edit This Cookie"를 실행하면 SESSION ID라는 쿠키 값을 확인할 수 있다.
  3. 세션 ID를 삭제하고 새로고침
    • SESSION ID 값을 삭제하고 새로고침하면 로그인 상태가 해제된다.
  4. 세션 ID를 다시 입력하고 새로고침
    • 삭제한 세션 ID를 다시 입력하면 로그인 상태가 복구된다.

이는 서버에서 세션 객체가 아직 유지되고 있기 때문이다.

즉, 올바른 세션 ID만 있으면 로그인 정보를 다시 불러올 수 있다.

 

로그아웃의 중요성

 

이제 로그아웃의 중요성을 알 수 있다. 대부분의 사이트에서 "로그아웃" 버튼을 누르면 쿠키의 세션 ID가 삭제된다.

 

공공장소에서 주의할 점

 

PC방이나 도서관 같은 공용 컴퓨터에서 로그아웃하지 않고 창을 닫으면, 쿠키에 저장된 세션 ID가 그대로 남아있을 수 있다. 만약 누군가 해당 값을 가져가서 브라우저에 설정하면 로그인된 상태로 접근할 수 있다.

따라서 공용 컴퓨터에서는 반드시 로그아웃 후 창을 닫는 습관을 들이자!