간단한 파이썬 웹 서버
Python
//
2020년 06월 30일 작성
//
2024년 12월 26일 업데이트
간단한 HTML 파일 디버깅을 위해 정적 웹 서버를 띄워야 할 일이 있을 수 있다. 이럴 때는 별도의 웹 서버 설치 필요 없이 파이썬을 이용해 간단한 웹 서버를 띄울 수 있다.
http.server
아래 커맨드 한 줄이면 현재 디렉터리의 파일을 서빙하는 HTTP 웹 서버를 띄울 수 있다.
python -m http.server
이후 웹 브라우저에서 http://localhost:8000
주소로 접속하면 파일 목록이 보이거나 혹은 HTML 파일을 볼 수 있다.
추가 옵션 예제들
아래와 같이 포트 번호나 --bind
옵션을 이용해 바인딩 할 IP 주소를 지정할 수 있다.
python -m http.server 3000 --bind 127.0.0.1
현재 디렉터리가 아닌 다른 디렉터리를 서빙 루트로 삼고 싶다면 --directory
옵션을 사용할 수 있다.
python -m http.server --directory /foo/bar
다양한 옵션이 있지만 사실 별 다른 옵션 없이 현재 디렉터리에 기본 설정으로 띄우는 것만 해도 개발 용도로는 무리가 없는 것 같다.
코드에서 띄우기
위 명령은 파이썬 패키지를 이용한 것이기 때문에 CLI 커맨드로 별도로 웹 서버를 띄우는 것뿐만 아니라 자신의 스크립트에서 웹 서버를 띄우는 것도 당연히 가능하다.
from http.server import HTTPServer, SimpleHTTPRequestHandler
server = HTTPServer(('0.0.0.0', 8000), SimpleHTTPRequestHandler)
server.serve_forever()
앞서 제일 처음 소개한 커맨드를 스크립트로 작성하면 이런 식이다.