[python] aiohttp

gunny·2024년 4월 1일
0

Python

목록 보기
17/29

aiohttp

  • aiohttp는 비동기 웹 서버 및 클라이언트를 개발하기 위한 python 라이브러리
    asyncio를 기반으로 한 비동기 HTTP 클라이언트 및 서버 제공

aiohttp.ClientSession

  • aiohttp 라이브러리에서 제공하는 클라이언트 세션 객체
  • ClientSession 은 HTTP 요청을 수행하는데 사용되는 주요 인터페이스 중 하나로, HTTP GET,POST,PUT,DELETE 등의 요청을 생성하고 보낼 수 있다.
    HTTP 연결을 재사용하여 성능을 향상시키고 연결을 관리하고 유지한다.

[ClientSession 을 사용하여 수행하는 작업]

  1. 웹 서버로 HTTP 요청을 보냄
  2. 웹 서버에서 받은 응답을 처리함
  3. 필요한 경우 요청에 대한 인증이나 인가 등의 추가적인 처리 수행
  4. 요청과 응답 사이의 데이터 처리 및 변환
  5. 필요한 경우 다른 HTTP 요청 보냄

aiohttp.ClientSession 은 asyncio를 사용해 비동기적으로 작동하므로, 여러 요청을 동시에 처리할 수 있다. 웹 서버와의 통신을 효율적으로 처리하고, 블로킹되지 않고 다른 작업을 수행할 수 있도록 한다.

raise_for_status()

  • aiohttp에서 제공하는 메서드로 HTTP 응답 상태 코드를 확인해 해당 상태 코드가 에러 코드인 경우에 예외를 발생시킨다.

  • 이 메서드는 주로 HTTP 요청을 보낸 후에 받은 응답에 대한 상태를 검증하고 처리하기 위해 사용된다.

  • HTTP 요청을 보내고 응답을 받은 후에 response.raise_for_status()를 호출하고, 응답의 상태 코드를 검사해 상태 코드가 400 이상인 경우 aiohttp.ClientResponseError 예외를 발생시킨다.

  • 웹 API를 호출하여 데이터를 가져오는 경우 응답의 상태 코드를 확인하기 위해 요청이 성공했는지 여부를 확인할 수 있다.
    raise_for_status()를 사용하면 코드가 간결해지고 에러 처리가 효율적으로 이루어진다.

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글