HTTP 세션은 웹 애플리케이션과 클라이언트 간의 상태를 유지하기 위해 사용됩니다. Requests는 Python에서 HTTP 요청을 보내기 위해 가장 많이 사용되는 라이브러리 중 하나입니다. 이 블로그 포스트에서는 Requests 라이브러리를 사용하여 HTTP 세션을 활용하는 방법에 대해 알아보겠습니다.
세션 생성하기
Requests 라이브러리를 사용하여 새로운 세션을 만들 수 있습니다. 세션 객체는 모든 요청에 대해 동일한 세션을 유지하여 상태를 유지하고, 쿠키를 관리하고, 기타 설정을 적용할 수 있습니다. 아래는 세션을 생성하는 예제 코드입니다.
import requests
session = requests.Session()
GET 요청 보내기
Requests를 사용하여 GET 요청을 보내는 경우, 세션 객체의 get
메소드를 호출하여 요청을 보낼 수 있습니다. 아래는 GET 요청을 보내고 응답을 얻는 예제 코드입니다.
response = session.get('https://api.example.com/data')
print(response.status_code) # 응답 상태 코드 출력
print(response.json()) # JSON 응답을 딕셔너리로 변환하여 출력
POST 요청 보내기
POST 요청을 보내는 경우, 세션 객체의 post
메소드를 사용하여 데이터를 전송할 수 있습니다. 아래는 POST 요청을 보내고 응답을 얻는 예제 코드입니다.
payload = {'username': 'example_user', 'password': 'example_password'}
response = session.post('https://api.example.com/login', data=payload)
print(response.status_code) # 응답 상태 코드 출력
print(response.text) # 응답 텍스트 출력
쿠키 관리하기
세션을 사용하면 자동으로 쿠키를 관리할 수 있습니다. 요청을 보낼 때 세션 객체가 쿠키를 추적하고, 응답을 받을 때 새로운 쿠키를 저장합니다. 아래는 세션을 사용하여 쿠키를 관리하는 예제 코드입니다.
# 로그인 요청
payload = {'username': 'example_user', 'password': 'example_password'}
response = session.post('https://api.example.com/login', data=payload)
# 인증된 요청
response = session.get('https://api.example.com/protected_data')
print(response.status_code) # 응답 상태 코드 출력
print(response.text) # 응답 텍스트 출력
세션 설정 변경하기
세션을 사용하여 요청을 보낼 때, 세션 객체의 속성을 변경하여 세션 설정을 조정할 수 있습니다. 몇 가지 유용한 설정에는 타임아웃, User-Agent, Proxy 설정 등이 있습니다. 아래는 세션 설정을 변경하는 예제 코드입니다.
session.headers.update({'User-Agent': 'Mozilla/5.0'})
session.proxies = {'http': 'http://user:password@proxy.example.com',
'https': 'https://user:password@proxy.example.com'}
session.timeout = 10 # 초 단위로 타임아웃 설정
response = session.get('https://api.example.com/data')
print(response.status_code) # 응답 상태 코드 출력
print(response.text) # 응답 텍스트 출력
Requests 라이브러리의 세션을 활용하면 HTTP 요청 시 세션 관리, 쿠키 관리, 세션 설정 변경 등의 작업을 더 쉽게 수행할 수 있습니다. 이를 통해 웹 애플리케이션과의 통신을 효율적으로 처리할 수 있습니다. 추가 정보와 기능에 대한 자세한 내용은 Requests 라이브러리의 공식 문서를 참조하시기 바랍니다.