쿠키, 세션, 토큰 간단한 정리

bomhada·2022년 7월 14일
0

web study note

목록 보기
1/2
post-thumbnail

오늘 공부할 쿠키와 세션, 토큰을 알기 전에 이것들은 HTTP의 특성으로부터 파생되어 생겨난 것입니다.

그럼 HTTP는 무엇일까요?

HTTP

HTTP는 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜을 말합니다.
HTTP비연결성무상태성이라는 특징을 가지고 있고, 요청 처리 후 연결을 끊기 때문에
클라이언트의 상태 정보 및 현재 통신 상태가 남지 않습니다.

비연결성의 장점은 서버의 자원 낭비를 줄일 수 있다는 것입니다.
그렇지만 클라이언트를 식별할 수 없다는 단점도 존재하는데요.
예를 들어서 로그인을 했더라도 다음 요청사항을 수행할 때마다 클라이언트를 기억하지 못해서,
무한 로그인을 하는 상황이 발생할 것입니다.

이같은 문제점을 해결하기 위해서 쿠키세션이라는 저장소를 활용합니다.

  • 쿠키는 웹사이트 접속 시 내 컴퓨터에 저장되는 작은 텍스트 파일입니다.
  • 웹사이트에서는 쿠키를 통해 어떤 기기로 접속했는지 인식하고, 일부 데이터를 저장합니다.
  • 쿠키에는 만료일을 지정할 수 있고, 만료일이 지나면 알아서 삭제가 됩니다.
  • 보안에 취약합니다.
  • 용량에 제한이 있어, 많은 정보는 담을 수 없습니다.
  • 웹 브라우저간 쿠키에 대한 지원형태가 다르기 때문에, 브라우저간 공유가 불가능합니다.

세션 (Session)

  • 세션은 데이터들이 접속 중인 웹 서버에 저장됩니다.
  • 쿠키보다는 상대적으로 안전합니다.
  • 브라우저를 닫거나 서버에서 세션을 삭제하면 없어집니다.
  • 저장 데이터에 제한이 없습니다. (서버자원이 소모되어 부담스러울 수 있습니다.)
  • 유저가 접속할 때 부여되는 세션ID를 사용해서 클라이언트를 구분합니다.

토큰 (Token)

  • 토큰은 난수 형태의 문자열입니다. (난수란 무작위로 만들어진 수열)
  • 이 문자열은 데이터에 접근하는 유저들에게 권한을 부여하는 카드키 같이 사용이 됩니다.
  • 토큰은 접근 토큰, 보안 토큰, 세션 토큰으로 이렇게 세 가지로 나뉩니다.
    - 접근 토큰 (Access token): 가장 많이 사용되는 토큰 형식.
    시스템이나 소프트웨어에서 어떤 특정한 기능이나 데이터에 접근하는 대상에게 권한을 부여하는데 사용됩니다.
    • 보안 토큰 (Security token): 하드웨어 저장 장치로 특정 전자기기의 제한된 자원(리소스)의 사용 권한을 제어합니다. 유에스비(USB) 보안 토큰이 그 예 입니다.
    • 세션 토큰 (Session token): 통신망에서 서버와 클라이언트 간 세션(논리적 연결) 후 사용됩니다. 세션 식별자(Session ID)로 표현하기도 합니다.

토큰 기반 인증 (JWT)

JWT(JSON Web Token)은 인증에 필요한 정보들을 암호화시킨 토큰입니다.

쿠키, 세션, 토큰에 대한 더 자세한 내용 확인하러 가기

0개의 댓글