[파이썬] aiohttp에서의 쿠키 처리

쿠키는 웹 애플리케이션에서 클라이언트의 상태 정보를 유지하고 필요한 데이터를 저장하는 데 사용되는 일반적인 메커니즘입니다. aiohttp는 Python에서 비동기 웹 애플리케이션을 작성하기 위한 강력한 라이브러리입니다. 이제 우리는 aiohttp를 사용하여 웹 애플리케이션에서 쿠키를 처리하는 방법을 알아보겠습니다.

aiohttp에서의 쿠키 생성하기

웹 애플리케이션에서 쿠키를 생성하려면 aiohttp.web.Response.set_cookie() 메서드를 사용해야 합니다. 이 메서드는 다음과 같은 인자를 받습니다:

다음은 aiohttp.web.Response.set_cookie() 메서드를 사용하여 쿠키를 생성하는 간단한 예제입니다:

from aiohttp import web

async def handle(request):
    response = web.Response(text="Hello, World!")
    response.set_cookie('name', 'John Doe', max_age=3600)
    return response

app = web.Application()
app.router.add_get('/', handle)
web.run_app(app)

위의 예제에서는 ‘/’ 경로로 요청이 들어오면 “Hello, World!”라는 응답을 생성하고, 쿠키를 설정합니다. 이 쿠키는 ‘name’이라는 이름으로 ‘John Doe’라는 값을 갖으며, 1시간 동안 유효합니다.

aiohttp에서의 쿠키 읽어오기

웹 애플리케이션에서 클라이언트로부터 전송된 쿠키를 읽어오려면 aiohttp.web.Request.cookies 속성을 사용합니다. 이 속성은 클라이언트로부터 수신된 쿠키의 딕셔너리를 반환합니다.

다음은 aiohttp.web.Request.cookies 속성을 사용하여 쿠키를 읽어오는 예제입니다:

from aiohttp import web

async def handle(request):
    name = request.cookies.get('name')
    response_text = f"Hello, {name}!" if name else "Hello, World!"
    return web.Response(text=response_text)

app = web.Application()
app.router.add_get('/', handle)
web.run_app(app)

위의 예제에서는 ‘/’ 경로로 요청이 들어오면 ‘name’ 쿠키의 값을 읽어와서 해당 값을 기반으로 인사말을 작성합니다. ‘name’ 쿠키가 없으면 “Hello, World!”를 반환합니다.

aiohttp에서의 쿠키 삭제하기

쿠키를 삭제하려면 aiohttp.web.Response.del_cookie() 메서드를 사용합니다. 이 메서드는 다음과 같은 인자를 받습니다:

다음은 aiohttp.web.Response.del_cookie() 메서드를 사용하여 쿠키를 삭제하는 예제입니다:

from aiohttp import web

async def handle(request):
    response = web.Response(text="Cookie deleted!")
    response.del_cookie('name')
    return response

app = web.Application()
app.router.add_get('/', handle)
web.run_app(app)

위의 예제에서는 ‘/’ 경로로 요청이 들어오면 “Cookie deleted!”라는 응답을 생성하고, ‘name’ 쿠키를 삭제합니다.

이제 aiohttp에서의 쿠키 처리가 어떻게 이루어지는지에 대해 간단하게 알아보았습니다. 쿠키를 생성, 읽기 및 삭제하기 위해 제공되는 강력한 기능을 사용하여 aiohttp를 통해 웹 애플리케이션을 구축할 수 있습니다.