파이썬(Python)을 사용해서 간단하게 웹서버를 구축할수 있습니다. 이번 포스팅에서는 파이썬을 이용해서 웹서버를 구축하는 내용을 다루도록 하겠습니다.
* 웹서버용 파이썬 라이브러리 모듈
(세번째 CGIHTTServer 모듈은 다음 포스팅에 다루도록한다.)
모듈 명 |
내용 |
처리 기능 |
BaseHTTPServer |
기반 서버 클래스용으로, HTTPServer 정의 핸들러 클래스용으로, BaseHTTPRequestHndler 정의 테스트용 웹 서버를 실행하는, test() 함수 정의 |
기반클래스로, HTTP 프로토콜 처리 |
SimpleHTTPServer |
기반 서버 클래스인 HTTPServer를 임포트하여 사용 핸들러 클래스용으로, SimpleHTTPRequestHandler 정의 테스트용 웹 서버를 실행하는, test() 함수 정의 |
GET과 HEAD 메소드 처리 가능 |
CGIHTTPServer |
기반 서버 클래스인 HTTPServer를 임포트하여 사용 핸들러 클래스용으로, CGIHTTPRequestHandler 정의 테스트용 웹 서버를 실행하는 함수 test() 정의 |
POST와 CGI 처리 |
1. BaseHTTPServer 모듈
- #!/usr/bin/env python
- from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
- class MyHandler(BaseHTTPRequestHandler):
- def do_GET(self):
- self.wfile.write("Hello world")
- if __name__ == '__main__':
- server = HTTPServer(('',8888), MyHandler)
- print "Started WebServer on port 8888..."
- print "Press ^C to quit webserver"
- server.serve_forever()
3,5번 라인, BaseHTTPRequestHandler를 상속받아, 원하는 로직으로 핸들러 클래스를 정의합니다. 웹서버를 만드는 가장 기본적인 방법이다. 10번 번 라인에서 HTTPServer() 함수를 통해 서버 객체를 생성한후 13번 라인의 serve_forever() 함수를 통해 서버를 실행한다. 위의 파이썬 코드를 실행하면 아래와 같이 웹서버 객체가 실행되어 생성된다.
웹서버 실행
웹서버 접속했을때 결과
2. SimpleHTTPServer 모듈
앞절에서는 웹서버를 만들기 위해 MyHandler라는 핸들러를 코딩하였다. SimpleHTTPServer 모듈 내에는 SimpleHTTPRequestHandler 클래스가 정의되어있는데, 이 핸들러에는 do_GET() 및 do_HEAD() 함수가 정의 되어있어서 아래와 간단한 명령어로 코딩없이 웹서버를 작동시킬수 있다. 아래 명령어는 실행한 경로에 디렉토리 리스팅이 되는 기능을 하는 웹서버이다.
python -m SimpleHTTPServer 8888 #아래는 동일한 명령어 python -c 'import SimpleHTTPServer; SimpleHTTPServer.test()' 8888 |
파이썬 명령어를 실행한 모습
웹서버에 접속했을때 모습
* 참고 자료
django로 배우는 쉽고 빠른 파이썬 웹프로그래밍
'IT > Python' 카테고리의 다른 글
파이썬(python)을 사용하여 프로그램에 입력값 넘겨주기 (0) | 2015.12.03 |
---|---|
파이썬(python) getopt 함수 사용하기 (0) | 2015.10.05 |
파이썬 웹프로그래밍 - 이미지 다운로드 (urllib2, httplib) 소스 (3) | 2015.05.15 |
파이썬 웹프로그래밍 - 웹 모듈 urlparse 예제 (0) | 2015.05.14 |
파이썬 웹표준 라이브러리 소개 및 변경사항 (0) | 2015.05.11 |