Python의 requests 라이브러리는 HTTP 통신을 매우 쉽게 만들어줍니다.
간단한 GET 요청을 보내고 응답을 확인해 봅시다.
먼저 다음 명령어로 라이브러리를 설치해야 합니다.
pip install requests
이제 아래 코드를 실행해 보세요.
import requests # requests 라이브러리 임포트 # 가상의 공개 API URL (JSONPlaceholder는 테스트용 공개 API를 제공합니다)url = "https://jsonplaceholder.typicode.com/todos/1"try: # 1. GET 요청 보내기 response = requests.get(url) # 요청이 성공했는지 확인 (200번대 상태 코드이면 성공) # .raise_for_status()는 4xx 또는 5xx 응답을 받으면 HTTPError 예외를 발생시킵니다. response.raise_for_status() # 2. 요청 정보 일부 확인 (requests 라이브러리가 만든 요청 객체) print("--- 요청 정보 ---") print(f"요청 방식: {response.request.method}") # 보낸 요청의 메서드 (GET) print(f"요청 URL: {response.request.url}") # 보낸 요청의 URL # 요청 헤더는 딕셔너리처럼 접근 가능합니다. print(f"요청 User-Agent: {response.request.headers.get('User-Agent')}") # 3. 응답 정보 확인 print("\n--- 응답 정보 ---") print(f"상태 코드: {response.status_code}") # 응답 상태 코드 (예: 200) # 응답 헤더도 딕셔너리처럼 접근 가능합니다. print(f"응답 Content-Type: {response.headers.get('Content-Type')}") # 4. 응답 본문 확인 (JSON 형식으로 가정) # .json() 메서드는 응답 본문이 JSON일 경우 파이썬 딕셔셔너리 또는 리스트로 변환해줍니다. todo_data = response.json() print(f"응답 본문 (JSON): {todo_data}") # 딕셔너리에서 특정 키의 값을 가져옵니다. print(f"할 일 제목: {todo_data.get('title')}")except requests.exceptions.HTTPError as http_err: # HTTP 오류 (4xx, 5xx) 발생 시 print(f"HTTP 오류 발생: {http_err}") except requests.exceptions.ConnectionError as conn_err: # 네트워크 연결 관련 오류 발생 시 print(f"연결 오류 발생: {conn_err}")except requests.exceptions.Timeout as timeout_err: # 요청 시간 초과 오류 발생 시 print(f"시간 초과 오류 발생: {timeout_err}")except requests.exceptions.RequestException as req_err: # 그 외 requests 라이브러리 관련 오류 발생 시 print(f"요청 중 알 수 없는 오류 발생: {req_err}")
실행 결과
--- 요청 정보 ---요청 방식: GET요청 URL: https://jsonplaceholder.typicode.com/todos/1요청 User-Agent: python-requests/2.32.3--- 응답 정보 ---상태 코드: 200응답 Content-Type: application/json; charset=utf-8응답 본문 (JSON): {'userId': 1, 'id': 1, 'title': 'delectus aut autem', 'completed': False}할 일 제목: delectus aut autem
위 코드는 jsonplaceholder.typicode.com이라는 공개 API에 GET 요청을 보내고, 요청 정보 일부와 응답 상태 코드, 헤더, 그리고 JSON 형식의 본문을 출력합니다.
다양한 예외 처리 구문을 추가하여 실제 상황에서 발생할 수 있는 오류들에 대비하는 모습도 보여줍니다.
오늘은 웹 핵심 프로토콜인 HTTP와 그 안전한 버전인 HTTPS에 대해 알아보았습니다.
HTTP는 요청과 응답이라는 간단한 구조로 동작하며, 다양한 상태 코드를 통해 서버의 처리 결과를 알려줍니다.
HTTPS는 SSL/TLS를 통해 데이터를 암호화하여 우리가 안심하고 웹을 사용할 수 있도록 해줍니다. Python의 requests 라이브러리를 통해 간단한 HTTP 요청 실습도 해보았습니다.
우리가 만드는 웹 서비스가 사용자와 안전하게 소통하기 위해서는 HTTP와 HTTPS에 대한 정확한 이해가 필수적입니다.
다음 시간에는 우리가 www.google.com 같은 도메인 이름을 입력했을 때, 이것이 어떻게 실제 서버의 IP 주소로 바뀌는지, 그 비밀을 풀어줄 DNS 시스템에 대해 알아보겠습니다.