[python] 응답에 대한 콘텐츠 전송 방식 확인하기

웹 프로그래밍에서 응답에 대한 콘텐츠 전송 방식은 매우 중요합니다. 특히, 웹 서버에서 클라이언트에게 전달되는 콘텐츠의 타입을 확인하는 것은 유용합니다. 이 글에서는 Python을 사용하여 웹 응답에 콘텐츠의 전송 방식을 확인하는 방법에 대해 다루겠습니다.

requests 라이브러리를 사용하여 HTTP 요청 보내기

Python에서 웹 요청을 보내고 응답을 받기 위해 requests 라이브러리를 주로 사용합니다. 먼저, requests 라이브러리를 설치합니다.

pip install requests

다음은 requests를 사용하여 웹 서버로 GET 요청을 보내는 간단한 예제입니다.

import requests

response = requests.get('http://example.com')

print(response)

위의 예제에서 requests.get() 함수를 호출하여 http://example.com으로 GET 요청을 보냅니다. response 변수에는 서버로부터 받은 응답 객체가 할당됩니다.

응답 객체에서 콘텐츠 타입 확인하기

응답 객체는 response.headers를 통해 서버로부터 받은 HTTP 헤더 정보에 접근할 수 있습니다. 이 중에서 Content-Type 헤더 정보를 확인하여 콘텐츠의 전송 방식을 알 수 있습니다.

import requests

response = requests.get('http://example.com')

content_type = response.headers['Content-Type']
print("Content-Type: {}".format(content_type))

위의 예제에서 response.headers['Content-Type']를 통해 콘텐츠의 타입을 얻을 수 있습니다. 결과는 예를 들어 text/html; charset=UTF-8와 같은 형식으로 반환됩니다.

정규 표현식을 사용하여 콘텐츠 타입 분석하기

Content-Type 헤더에서 콘텐츠의 전송 방식을 분석하기 위해 정규 표현식을 사용할 수 있습니다. 예를 들어, text/html이나 application/json과 같은 값을 추출할 수 있습니다.

import re

content_type = 'text/html; charset=UTF-8'

pattern = r'([^;]+)'
result = re.match(pattern, content_type)

if result:
    content_type_value = result.group(0)
    print("콘텐츠 타입: {}".format(content_type_value))
else:
    print("콘텐츠 타입을 찾을 수 없습니다.")

위의 예제에서는 re.match() 함수를 사용하여 정규 표현식 패턴 ([^;]+)과 콘텐츠 타입 문자열을 대조하고, 일치하는 값으로 분석합니다. 결과는 text/html과 같이 전달됩니다.

결론

Python을 사용하여 웹 응답에 대한 콘텐츠의 전송 방식을 확인하는 방법을 알아보았습니다. requests 라이브러리를 사용하여 웹 요청을 보내고, 응답 객체의 Content-Type 헤더 정보를 확인하여 콘텐츠의 타입을 알 수 있습니다. 정규 표현식을 이용하면 Content-Type 값을 분석하여 원하는 정보를 추출할 수 있습니다. 이를 통해 웹 프로그래밍에서 콘텐츠의 처리 방식을 더욱 유연하게 제어할 수 있습니다.

참고 자료