간단한 파이썬 웹 서버

2018-10-01

순수한 파이썬 HTTP 서버를 구현

$ python -m http.server

다음과 같은 초기 메시지를 출력

Serving HTTP on 0.0.0.0 port 8000 …

0.0.0.0은 모든 TCP 주소를 의미한다. 따라서 웹 클라이언트는 서버가 어떤 주소를 가져도 그곳에 접근할 수 있다. 현재 디렉터리에 대한 상대 경로로 파일을 요청할 수 있으며 요청한 파일이 반환된다. 웹 브라우저에서 http://localhost:8000을 입력하면, 현대 디렉터리의 리스트가 나타나고, 서버에 아래와 간은 액세서 로그 라인이 출력된다.

127.0.0.1 - - [27/Jun/2015 19:46:22] “GET / HTTP/1.1” 200 -

localhost와 127.0.0.1은 로컬 컴퓨터에 대한 TCP 동의어로 인터넷 연결과 상관없이 실행된다.

  • 127.0.0.1은 클라이언트의 IP 주소이다.
  • 첫번째 ‘-‘은 원격 사용자 이름이다.(발견된 경우)
  • 두번째 ‘-‘은 로그인 사용자 이름이다.(발견된 경우)
  • [27/Jun/2015 19:46;22]는 접근한 날짜와 시간이다.
  • “GET / HTTP/1.1”은 웹 서버로 보내는 명령이다.
    • HTTP 메서드(GET)
    • 리소스 요청(/)
    • HTTP 버전(HTTP/1.1)
  • 200은 웹 서버로부터 반환된 HTTP 상태 코드이다.