본문 바로가기

기술블로그

쿠키, 세션인증

Introduction

쿠키는 다음 위치에 저장되는 작은 텍스트 파일입니다. 웹 서버에 의한 사용자의 장치. 기본 설정 및 로그인 상태와 같은 사용자의 웹 사이트 방문에 대한 정보를 추적하는 데 사용됩니다. 쿠키는 최신 웹 브라우징의 필수 요소이며 웹사이트에서 각 사용자에게 개인화된 환경을 제공할 수 있도록 합니다.

 

How cookies work

사용자가 웹사이트를 방문하면 웹 서버는 장치에 쿠키를 보낼 수 있습니다. 쿠키는 일반적으로 기본 설정 또는 로그인 상태와 같은 사용자 방문에 대한 일부 정보가 포함된 작은 텍스트 파일입니다. 그런 다음 사용자의 웹 브라우저는 쿠키를 장치에 저장합니다. 다음에 사용자가 같은 웹사이트를 방문하면 웹 브라우저가 쿠키를 다시 웹 서버로 보냅니다. 그런 다음 서버는 쿠키의 정보를 사용하여 사용자에게 개인화된 경험을 제공할 수 있습니다.

 

쿠키에는 만료 날짜가 있을 수 있으며 그 후에는 더 이상 웹 서버로 다시 전송되지 않습니다. 이는 사용자가 무기한 로그인 상태를 유지해서는 안 되는 로그인 세션과 같은 작업에 유용할 수 있습니다.

Types of cookies

쿠키에는 세션 쿠키와 영구 쿠키의 두 가지 주요 유형이 있습니다. 

 

세션 쿠키는 웹사이트를 방문하는 동안 사용자의 웹 브라우저에 저장되는 임시 쿠키입니다. 일반적으로 사용자의 로그인 상태를 추적하거나 방문하는 동안 사용자의 기본 설정에 대한 정보를 저장하는 데 사용됩니다. 세션 쿠키는 사용자가 웹 브라우저를 닫으면 삭제됩니다.

 

반면 영구 쿠키는 웹 브라우저를 닫은 후에도 사용자의 장치에 저장됩니다. 일반적으로 만료 날짜가 있으며 그 이후에는 더 이상 웹 서버로 다시 전송되지 않습니다. 영구 쿠키는 종종 사용자의 로그인 자격 증명이나 기본 설정을 기억하는 것과 같은 용도로 사용됩니다.

 

Using cookies to authenticate sessions

쿠키는 웹사이트에서 사용자 세션을 인증하는 데 사용할 수 있습니다. 사용자가 웹 사이트에 로그인하면 서버는 해당 사용자에 대한 세션을 생성하고 쿠키의 세션 ID를 사용자의 웹 브라우저에 보낼 수 있습니다. 그런 다음 브라우저는 후속 요청이 있을 때마다 세션 ID를 서버로 다시 보내어 서버가 사용자를 식별하고 세션을 유지할 수 있도록 합니다.

 

다음은 쿠키를 사용하여 세션을 인증하는 방법에 대한 간단한 예입니다.

 

from flask import Flask, request, make_response
import uuid

app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    # authenticate user and create session
    session_id = str(uuid.uuid4())
    response = make_response('Logged in successfully!')
    response.set_cookie('session_id', session_id)
    return response

@app.route('/protected')
def protected():
    # check if user is logged in
    session_id = request.cookies.get('session_id')
    if session_id:
        # user is logged in
        return 'You are logged in!'
    else:
        # user is not logged in
        return 'You are not logged in!'

Conclusion

쿠키는 최신 웹 브라우징의 필수 부분이며, 이를 통해 웹사이트는 각 사용자에게 개인화된 경험을 제공할 수 있습니다.

기본 설정 및 로그인 상태와 같은 사용자 방문에 대한 정보를 저장하는 데 사용할 수 있습니다.

쿠키는 또한 웹사이트에서 사용자 세션을 인증하는 데 사용될 수 있습니다.

'기술블로그' 카테고리의 다른 글

토큰  (0) 2023.03.08
해싱  (0) 2023.03.08
알고리즘 성능 특성  (0) 2023.03.03
WAI-ARIA  (0) 2023.03.02
웹 콘텐츠 접근성 지침  (0) 2023.03.02