淺析Python 中的 WSGI 接口和 WSGI 服務(wù)的運行
HTTP格式
HTTP GET請求的格式:
GET /path HTTP/1.1 Header1: Value1 Header2: Value2 Header3: Value3
每個Header一行一個,換行符是\r\n。
HTTP POST請求的格式:
POST /path HTTP/1.1 Header1: Value1 Header2: Value2 Header3: Value3 body data goes here...
當遇到連續(xù)兩個\r\n時,Header部分結(jié)束,后面的數(shù)據(jù)全部是Body。
HTTP響應(yīng)的格式:
200 OK Header1: Value1 Header2: Value2 Header3: Value3 body data goes here...
HTTP響應(yīng)如果包含body,也是通過\r\n\r\n來分隔的。需注意,Body的數(shù)據(jù)類型由Content-Type頭來確定,如果是網(wǎng)頁,Body就是文本,如果是圖片,Body就是圖片的二進制數(shù)據(jù)。
當存在Content-Encoding時,Body數(shù)據(jù)是被壓縮的,最常見的壓縮方式是gzip。
WSGI接口
WSGI:Web Server Gateway Interface。
WSGI接口定義非常簡單,只需要實現(xiàn)一個函數(shù),就可以響應(yīng)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')]
函數(shù)接收兩個參數(shù):
- environ:一個包含所有HTTP請求信息的
dict對象; - start_response:一個發(fā)送HTTP響應(yīng)的函數(shù)。
運行WSGI服務(wù)
Python內(nèi)置了一個WSGI服務(wù)器,這個模塊叫wsgiref,它是用純Python編寫的WSGI服務(wù)器的參考實現(xiàn)。
# server.py
from wsgiref.simple_server import make_server
from hello import application
# 創(chuàng)建一個服務(wù)器,IP地址為空,端口是8000,處理函數(shù)是application:
httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000...')
# 開始監(jiān)聽HTTP請求:
httpd.serve_forever()
在命令行輸入python server.py即可啟動WSGI服務(wù)器。
啟動成功后,打開瀏覽器,輸入http://localhost:8000/,即可看到結(jié)果。
按Ctrl+C可以終止服務(wù)器。
以上就是淺析Python 中的 WSGI 接口和 WSGI 服務(wù)的運行的詳細內(nèi)容,更多關(guān)于Python WSGI接口和WSGI服務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
- Python?Web開發(fā)通信協(xié)議WSGI?uWSGI?uwsgi使用對比全面介紹
- Python安裝和配置uWSGI的詳細過程
- 通過Python中的CGI接口講解什么是WSGI
- django生產(chǎn)環(huán)境搭建(uWSGI+django+nginx+python+MySQL)
- Python WSGI 規(guī)范簡介
- Docker構(gòu)建python Flask+ nginx+uwsgi容器
- python web框架 django wsgi原理解析
- Python開發(fā)之Nginx+uWSGI+virtualenv多項目部署教程
- Python從wsgi導(dǎo)入失敗的問題解決方法
相關(guān)文章
Python 3.6打包成EXE可執(zhí)行程序的實現(xiàn)
這篇文章主要介紹了Python 3.6打包成EXE可執(zhí)行程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2019-10-10
實踐Python的爬蟲框架Scrapy來抓取豆瓣電影TOP250
這篇文章主要介紹了實踐Python的爬蟲框架Scrapy來抓取豆瓣電影TOP250的過程,文中的環(huán)境基于Windows操作系統(tǒng),需要的朋友可以參考下2016-01-01
Python光學(xué)仿真wxpython透鏡演示系統(tǒng)初始化與參數(shù)調(diào)節(jié)
這篇文章主要為大家介紹了Python光學(xué)仿真wxpython透鏡演示系統(tǒng)的初始化與參數(shù)調(diào)節(jié),同樣在學(xué)習wxpython透鏡演示系統(tǒng)的入門同學(xué)可以借鑒參考下,希望能夠有所幫助2021-10-10
Python激活A(yù)naconda環(huán)境變量的詳細步驟
今天給大家分享Python激活A(yù)naconda環(huán)境變量的詳細步驟,激活A(yù)naconda環(huán)境變量分為簡潔版和詳細版,簡潔版只需要通過輸入命令進行配置即可,詳細版本文通過圖文步驟給大家介紹的非常詳細,需要的朋友參考下吧2021-06-06
numpy 進行數(shù)組拼接,分別在行和列上合并的實例
今天小編就為大家分享一篇numpy 進行數(shù)組拼接,分別在行和列上合并的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05

