/* 
written by kaspy (kaspyx@gmail.com)
*/ 

파이썬 SimpleHTTPAuthServer를 이용해서 간단한 HTTP서버를 구축해보도록하자.


서버 내부 파일 다운로드가 필요하면서 인증이 필요한 환경이라면 사용해도 좋을것이다.


해당 파이썬 라이브러리는 아래 URL에서 다운로드 받을수 있다.


- 다운로드 URL


https://gist.github.com/fxsjy/5465353



- pip 으로 설치하기


pip install git+git://github.com/tianhuil/SimpleHTTPAuthServer.git@master



- 사용법


mkdir "공유할 디렉토리"

cd "공유할 디렉토리"

python -m SimpleHTTPAuthServer portnumber userid:pwd


나는 아래와 같이 명령어를 입력해줘서 서버를 구축해줬다.


mkdir myftp

cd myftp

touch hello

sudo python -m SimpleHTTPAuthServer 80 kaspyx:12345



명령어를 실행해주고 자신의 아이피에 접속하면 아래와같이 접속 인증을 입력하라는 창이 뜰것이다.


위에서 설정한데로 입력해주면 아래와같은 디렉토리 리스팅이되는 화면을 볼수있을것이다.







저작자 표시
신고
Posted by 캐스피
/* 
written by kaspy (kaspyx@gmail.com)
*/ 


 파이썬(Python)을 사용해서 간단하게 웹서버를 구축할수 있습니다. 이번 포스팅에서는 파이썬을 이용해서 웹서버를 구축하는 내용을 다루도록 하겠습니다.


* 웹서버용 파이썬 라이브러리 모듈

(세번째 CGIHTTServer 모듈은 다음 포스팅에 다루도록한다.)


모듈

내용

처리 기능

BaseHTTPServer

기반 서버 클래스용으로, HTTPServer 정의

핸들러 클래스용으로, BaseHTTPRequestHndler 정의

테스트용 서버를 실행하는, test() 함수 정의

기반클래스로,

HTTP 프로토콜 처리

SimpleHTTPServer

기반 서버 클래스인 HTTPServer 임포트하여 사용

핸들러 클래스용으로, SimpleHTTPRequestHandler 정의

테스트용 서버를 실행하는, test() 함수 정의

GET HEAD 메소드

처리 가능

CGIHTTPServer

기반 서버 클래스인 HTTPServer 임포트하여 사용

핸들러 클래스용으로, CGIHTTPRequestHandler 정의

테스트용 서버를 실행하는 함수 test() 정의

POST CGI 처리

 


1. BaseHTTPServer 모듈


  1. #!/usr/bin/env python
  2.  
  3. from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
  4.  
  5. class MyHandler(BaseHTTPRequestHandler):
  6.     def do_GET(self):
  7.         self.wfile.write("Hello world")
  8.  
  9. if __name__ == '__main__':
  10.     server = HTTPServer(('',8888), MyHandler)
  11.     print "Started WebServer on port 8888..."
  12.     print "Press ^C to quit webserver"
  13.     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로 배우는 쉽고 빠른 파이썬 웹프로그래밍


저작자 표시
신고
Posted by 캐스피


티스토리 툴바