python 라이브러리로 아주 간단한 웹서버 만들기

조한림·2020년 2월 15일
4

python

목록 보기
1/1
post-thumbnail

웹서버 프로그래밍을 작성할 때에는 보통 개발자가 직접 파이썬 라이브러리를 사용해서 웹 서버를 개발하기 보다는 웹 프레임워크를 사용해서 개발하는 경우가 대부분이다.

프레임워크는 개발자가 웹 서버 프로그램을 개발하기 쉽도록 저수준의 기능을 이미 만들어 놓은 프로그램으로, 웹 서버 개발자는 프레임워크를 활용하여 응용로직만 개발하면 되기 때문에 훨씬 효율적입니다.

하지만 파이썬의 웹 서버 라이브러리가 웹 프레임워크에 어떻게 사용되는지 등에 대한 기술을 파악할 필요가 있어 기본 개념과 동작원리 등을 알아보는 것이 좋다.

간단한 웹 서버


웹 서버용 파이썬 라이브러리의 주요 클래스

클래스명주요기능
HTTPServer- 웹 서버를 만들기 위한 클래스로 서버 IP와 PORT를 바인딩함
- HTTPServer 객체 생성시, 핸들러 클래스가 반드시 필요함
BaseHTTPRequestHandler- 핸들러를 만들기위한 기반 클래스, HTTP프로토콜 처리 로직이 필요하다
- 이 클래스를 상속받아, 자신의 로직 처리를 담당하는 핸들러 클래스를 만든다.
SimpleHTTPRequestHandler- BaseHTTPRequestHandler 클래스를 상속받아 만든 클래스
- GET과 HEAD 메소드 처리가 가능한 핸들러 클래스
CGIHTTPRequestHandler- SimpleHTTPRequestHandler 클래스를 상속받아 만든 클래스
- 추가적으로 POST 메소드와 CGI 처리가 가능한 핸들러 클래스


from http.server import HTTPServer, BaseHTTPRequestHandler

class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response_only(200, 'OK')
        self.send_header('Content-Type', 'text/plan')
        self.end_headers()
        self.wfile.write(b"Hello Wold")

if __name__ =='__main__':
    server = HTTPServer(('', 8888), MyHandler)
    print('Started WebServer on port 8888...')
    print('Press ^c to quit webserver')
    server.serve_forever()

결과 페이지 로는

위의 함수에 입력한 대로 Hello World가 출력되는것을 볼 수 있다.

터미널 화면에서는 웹서버가 8888번 포트에서 돌아간다는 메시지가 출력되고
컨트롤 + c 를 누르면 웹서버가 중지된다는 것까지 출력되는 것을 볼 수 있다.

profile
안녕하세요

0개의 댓글