Python의 WSGI 인터페이스와 WSGI 서비스의 운행 분석

HTTP 형식
HTTP GET 요청 형식:

GET /path HTTP/1.1
Header1: Value1
Header2: Value2
Header3: Value3
각 Header는 줄마다 하나씩이며 줄 바꿈은 \r
입니다.
HTTP POST 요청 형식:

POST /path HTTP/1.1
Header1: Value1
Header2: Value2
Header3: Value3

body data goes here...
두 개의\r가 연속되면 Header 섹션이 종료되고 뒤에 있는 데이터는 모두 Body입니다.
HTTP 응답 형식:

200 OK
Header1: Value1
Header2: Value2
Header3: Value3

body data goes here...
HTTP 응답은 body를 포함하는 경우에도 \r
\r
로 구분됩니다.주의해야 할 것은 Body의 데이터 유형은 Content-Type 헤더에서 확정한다. 웹 페이지의 경우 Body는 텍스트이고, 그림의 경우 Body는 그림의 2진 데이터이다.Content-Encoding가 존재할 때 Body 데이터는 압축되고 가장 흔히 볼 수 있는 압축 방식은 gzip이다.
WSGI 커넥터
WSGI:Web Server Gateway Interface.
WSGI 인터페이스 정의는 매우 간단하여 하나의 함수만 실현하면 HTTP 요청에 응답할 수 있다.

# hello.py

def application(environ, start_response):
  start_response('200 OK', [('Content-Type', 'text/html')])
  body = '<h1>Hello, %s!</h1>' % (environ['PATH_INFO'][1:] or 'web')
  return [body.encode('utf-8')]
함수는 두 개의 매개 변수를 수신합니다.
  • environ: 모든 HTTP 요청 정보를 포함하는 dict 대상;
  • start_response: HTTP 응답을 보내는 함수입니다.
  • WSGI 서비스 실행
    Python에는 WSGI 서버가 내장되어 있습니다. 이 모듈은 wsgiref라고 하는데 순수한 Python으로 작성된 WSGI 서버의 참고로 이루어집니다.
    
    # server.py
    
    from wsgiref.simple_server import make_server
    from hello import application
    
    #  ,IP , 8000, application:
    httpd = make_server('', 8000, application)
    print('Serving HTTP on port 8000...')
    #  HTTP :
    httpd.serve_forever()
    WSGI 서버를 시작하려면 명령줄에서 python server.py 을 입력합니다.
    시작 후 브라우저를 열고 http://localhost:8000/ 를 입력하면 결과를 볼 수 있습니다.Ctrl+C를 누르면 서버를 종료할 수 있습니다.
    이상은Python의 WSGI 인터페이스와 WSGI 서비스의 운행에 대한 상세한 내용을 분석하고, 더 많은Python WSGI 인터페이스와 WSGI 서비스에 대한 자료는 저희의 기타 관련 글을 주목하십시오!

    좋은 웹페이지 즐겨찾기