requests가 너무 강력해서 잊혀지지만, 파이썬 표준 라이브러리에도 HTTP 도구가 있습니다.
urllib(고수준), http.client(저수준)입니다.
외부 의존성 못 쓰는 환경에서는 이게 유일한 선택지입니다.
urllib.request 기본.
from urllib.request import urlopen.
with urlopen("https://example.com") as r: html = r.read().
간단한 GET은 가능.
하지만 헤더 추가, JSON, 쿠키 같은 건 직접 구성해야 해서 코드가 장황해집니다.
Request 객체로 헤더·메서드 설정.
from urllib.request import Request, urlopen.
req = Request(url, data=body, headers={"Content-Type":"application/json"}, method="POST").
urlopen(req).
requests에 비하면 번거롭다는 게 잘 보입니다.
URL 조작 도구가 알찹니다.
urllib.parse — quote(특수문자 인코딩), urlencode(딕셔너리 → 쿼리 스트링), urlparse(URL 분해), urljoin(상대→절대 변환).
이건 requests를 써도 자주 활용합니다.
결론 — 일반 코드에서는 requests, 그러나 파이썬 표준만 써야 하는 환경(임베디드, AWS Lambda 미니멀 등)이거나 URL 파싱·인코딩이 필요할 때는 urllib도 알아 두면 좋습니다.
한 줄 요약
urllib·http.client는 표준 라이브러리 HTTP 도구입니다.
requests보다 장황하지만 외부 의존성을 못 쓰는 환경에서 유용하고, urllib.parse는 자주 활용합니다.
더 알아볼 것
- urllib.parse.quote — URL 인코딩
- http.client — 저수준 HTTP
- urllib3 — requests가 쓰는 라이브러리