쿠키는 웹 애플리케이션에서 클라이언트의 상태 정보를 유지하고 필요한 데이터를 저장하는 데 사용되는 일반적인 메커니즘입니다. aiohttp는 Python에서 비동기 웹 애플리케이션을 작성하기 위한 강력한 라이브러리입니다. 이제 우리는 aiohttp를 사용하여 웹 애플리케이션에서 쿠키를 처리하는 방법을 알아보겠습니다.
aiohttp에서의 쿠키 생성하기
웹 애플리케이션에서 쿠키를 생성하려면 aiohttp.web.Response.set_cookie()
메서드를 사용해야 합니다. 이 메서드는 다음과 같은 인자를 받습니다:
name
: 쿠키의 이름입니다.value
: 쿠키의 값입니다.max_age
: 쿠키의 유효기간을 초 단위로 설정합니다.path
: 쿠키의 적용 경로를 지정합니다.domain
: 쿠키의 적용 도메인을 지정합니다.httponly
:True
로 설정하면, 클라이언트 사이드 스크립트에서 쿠키에 접근할 수 없습니다.secure
:True
로 설정하면, HTTPS 프로토콜을 사용하는 경우에만 쿠키를 전송합니다.
다음은 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()
메서드를 사용합니다. 이 메서드는 다음과 같은 인자를 받습니다:
name
: 삭제할 쿠키의 이름입니다.path
: 삭제할 쿠키가 적용되는 경로를 지정합니다.domain
: 삭제할 쿠키가 적용되는 도메인을 지정합니다.
다음은 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를 통해 웹 애플리케이션을 구축할 수 있습니다.