# POST 요청으로 보낼 헤더 정보를 삽입 headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'text/plain' }
# 연결 시작 conn = HTTPConnection(host) conn.request('POST', '', params, headers) # 반드시 POST로 명시해야한다. response = conn.getresponse() print(response.status, response.reason) # 200, Success
data = response.read() print(data.decode('utf-8')) # response 인스턴스를 UTF-8 인코딩으로 불러온다.
# 연결 해제 conn.close()
HEAD 사용 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
from http.client import HTTPConnection
# HTTPConnection 인스턴스 생성 conn = HTTPConnection('www.example.com')
# HEAD 방식임을 명시적으로 작성해야한다. conn.request('HEAD', '/')
# 응답 결과 출력 response = conn.getresponse() data = response.read()
# 출력 결과 print(len(data)) # 0 print(data == b'') # True
http.server
http.server 모듈을 통해 간단하게 웹 서버를 구성할 수 있습니다.
웹 서버 생성 방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14
from http.server import HTTPServer, BaseHTTPRequestHandler
# 원하는 로직에 맞게 핸들러 클래스 정의하기 classMyHandler(BaseHTTPRequestHandler): defdo_GET(self):# GET 일 때 self.send_response_only(200, 'OK') self.end_headers() 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
Tip
명령어로 Django 웹 서버 간단하게 동작하기
1 2 3 4 5 6 7 8
# manage.py 가 있는 저장소 루트 (<repository-root>) 디렉토리에서
python runserver 0.0.0.0:8888 # 0.0.0.0 : 모든 주소로부터 접속이 가능하도록합니다. (127.0.0.1 이 기본값입니다) # :8888 : 포트 번호 (8000 포트가 기본값입니다)
python -m http.server 8888 # 0.0.0.0:8888 로 바인딩시켜 웹 서버를 생성한 것과 동일한 결과입니다.