User-Agent會告訴網(wǎng)站服務(wù)器扒袖,訪問者是通過什么工具來請求的,如果是爬蟲請求歼培,一般會拒絕震蒋,如果是用戶瀏覽器,就會應(yīng)答躲庄。
WSGI協(xié)議
瀏覽器請求動態(tài)頁面過程
遵循WSGI協(xié)議
WSGI允許開發(fā)者將選擇web框架和web服務(wù)器分開查剖。可以混合匹配web服務(wù)器和web框架噪窘,選擇一個適合的配對
web服務(wù)器必須具備WSGI接口笋庄,所有的現(xiàn)代Python Web框架都已具備WSGI接口,它讓你不對代碼作修改就能使服務(wù)器和特點(diǎn)的web框架協(xié)同工作。
定義WSGI接口
defapplication(environ, start_response):start_response('200 OK', [('Content-Type','text/html')])return'Hello World!'
上面的application()函數(shù)就是符合WSGI標(biāo)準(zhǔn)的一個HTTP處理函數(shù)直砂,它接收兩個參數(shù):
environ:一個包含所有HTTP請求信息的dict(字典)對象菌仁;
start_response:一個發(fā)送HTTP響應(yīng)的函數(shù)。
200OK:狀態(tài)碼
函數(shù)的兩個參數(shù):200OK:狀態(tài)碼哆键;header:頭信息? ----傳列表
[('Content-Type','text/html')]元組? ?一個表示一行信息? 表示一個鍵值對
可以返回多個元組
Content-Type? 元組
text/html? 鍵值對??