파이썬 네트워킹 기초: HTTP 요청 처리를 쉽게 requests 모듈로 시작
파이썬은 네트워크 프로그래밍을 위한 다양한 모듈을 제공하며, 특히 HTTP 요청 처리를 위한 requests
모듈은 개발자들이 쉽게 웹 서비스와 상호작용할 수 있도록 도와줍니다. 이 글에서는 파이썬 네트워킹 기초를 다루고, 특히 requests
모듈을 사용하여 HTTP 요청을 처리하는 방법을 설명합니다.
1. 파이썬 네트워킹 기초
파이썬에서 네트워크 프로그래밍을 시작하기 위해서는 기본적인 개념을 이해하는 것이 중요합니다. 네트워크 프로그래밍은 클라이언트-서버 모델을 기반으로 작동하며, 클라이언트는 서버에 요청을 보내고, 서버는 요청에 대한 응답을 반환합니다.
1.1 HTTP 프로토콜
HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 전송하기 위한 프로토콜입니다. HTTP 요청은 GET, POST, PUT, DELETE 등 다양한 메서드를 사용하여 수행할 수 있습니다. GET 요청은 데이터를 읽기 위해 사용되고, POST 요청은 데이터를 생성하거나 업데이트하기 위해 사용됩니다.
1.2 requests 모듈
requests
모듈은 파이썬에서 HTTP 요청을 처리하기 위한 가장 인기 있는 모듈 중 하나입니다. 이 모듈은 HTTP 요청을 간단하게 처리할 수 있도록 다양한 기능을 제공합니다.
1.2.1 requests 모듈 설치
requests
모듈을 설치하기 위해서는 다음과 같은 명령을 사용합니다:
pip install requests
1.2.2 GET 요청 처리
GET 요청은 데이터를 읽기 위해 사용됩니다. requests
모듈을 사용하여 GET 요청을 처리하는 방법은 다음과 같습니다:
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
response = requests.get(url)
print(response.json())
1.2.3 POST 요청 처리
POST 요청은 데이터를 생성하거나 업데이트하기 위해 사용됩니다. requests
모듈을 사용하여 POST 요청을 처리하는 방법은 다음과 같습니다:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post(url, json=data)
print(response.json())
1.2.4 헤더와 쿠키 설정
HTTP 요청에 헤더와 쿠키를 설정하는 방법은 다음과 같습니다:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
cookies = {'session_id': 'abcd1234'}
response = requests.post(url, headers=headers, cookies=cookies)
print(response.json())
1.2.5 오류 처리
HTTP 요청 시 오류가 발생할 수 있습니다. 오류를 처리하는 방법은 다음과 같습니다:
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
try:
response = requests.get(url)
response.raise_for_status() # 200~299 상태 코드가 아닌 경우 예외를 발생시킵니다.
except requests.exceptions.RequestException as e:
print(f"Error: {e}")
2. 실습 예제
2.1 JSON 데이터 전송
JSON 데이터를 전송하는 방법은 다음과 같습니다:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post(url, json=data)
print(response.json())
2.2 쿠키 전송
쿠키를 전송하는 방법은 다음과 같습니다:
import requests
url = 'https://www.example.com/profile'
cookies = {'session_id': 'abcd1234'}
response = requests.get(url, cookies=cookies)
print(response.json())
2.3 인증 헤더 전송
인증 헤더를 전송하는 방법은 다음과 같습니다:
import requests
url = 'https://api.example.com/secure-data'
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get(url, headers=headers)
print(response.json())
3. cURL 명령어와 비교
cURL 명령어는 HTTP 요청을 테스트하거나 서버 응답을 확인하는 데 유용합니다. cURL 명령어와 비교하여 requests
모듈을 사용하는 방법은 다음과 같습니다:
3.1 GET 요청
cURL 명령어로 GET 요청을 테스트하는 방법은 다음과 같습니다:
curl https://jsonplaceholder.typicode.com/posts/1
requests
모듈로 GET 요청을 처리하는 방법은 다음과 같습니다:
import requests
url = 'https://jsonplaceholder.typicode.com/posts/1'
response = requests.get(url)
print(response.json())
3.2 POST 요청
cURL 명령어로 POST 요청을 테스트하는 방법은 다음과 같습니다:
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H "Content-Type: application/json" \
-d '{"title": "foo", "body": "bar", "userId": 1}'
requests
모듈로 POST 요청을 처리하는 방법은 다음과 같습니다:
import requests
url = 'https://jsonplaceholder.typicode.com/posts'
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post(url, json=data)
print(response.json())
4. 결론
파이썬에서 HTTP 요청 처리를 위한 requests
모듈은 개발자들이 쉽게 웹 서비스와 상호작용할 수 있도록 도와줍니다. 이 글에서는 requests
모듈을 사용하여 GET, POST 요청을 처리하는 방법을 설명하였으며, 헤더와 쿠키 설정, 오류 처리 방법도 함께 설명되었습니다. 실습 예제를 통해 requests
모듈의 사용법을 확인할 수 있으며, cURL 명령어와 비교하여 사용하는 방법도 설명되었습니다.
'[개발] 파이썬' 카테고리의 다른 글
9.2.2. 비동기 프로그래밍 (2) | 2024.12.30 |
---|---|
9.2.1. 멀티스레딩과 멀티프로세싱 (0) | 2024.12.30 |
9.1.1. 소켓 프로그래밍 (0) | 2024.12.30 |
8.3. REST API 만들기 (4) | 2024.12.30 |
8.2.3. Django 뷰와 템플릿 (0) | 2024.12.30 |