[Python web开发] Web框架开发基础 (一)
?
Python WEB框架
WSGI,WEB Server Gateway Interface,可以看做是一種底層協(xié)議,它規(guī)定了服務(wù)器程序和應(yīng)用程序各自實(shí)現(xiàn)上面接口。Python的實(shí)現(xiàn)稱為wsgiref
Flask,基于WSGI,微框架
Django,基于WSGI,開源的WEB框架
?
C/S與B/S的區(qū)別
?
學(xué)習(xí)web框架的目的:
1、了解WEB框架工作機(jī)制
了解眾多框架背后的技術(shù),將來可以對(duì)框架做二次開發(fā)、定制改版
2、學(xué)習(xí)API封裝
學(xué)習(xí)框架封裝的思想,并提供友好的編程接口
?
?
HTTP協(xié)議:
http協(xié)議是無狀態(tài)協(xié)議。
同一個(gè)客戶端的兩次請(qǐng)求之間沒有任何關(guān)系,從服務(wù)器端角度來說,它不指定這兩個(gè)請(qǐng)求來自同一個(gè)客戶端。
有連接、短連接
有連接,HTTP基于TCP協(xié)議,是面向連接的,需要3次握手、4次斷開。
短連接,http 1.1之前,都是一個(gè)請(qǐng)求一個(gè)連接,而TCP的李連杰創(chuàng)建銷毀成本高,對(duì)服務(wù)器有很大的影響。所以,從http 1.1開始,支持keep-alive,默認(rèn)也開啟,一個(gè)連接創(chuàng)建后,會(huì)保持一段時(shí)間(可設(shè)置),瀏覽器再訪問該服務(wù)器就使用這個(gè)TCP連接,減輕了服務(wù)器壓力,提高了效率。
?
?
Cookie:
一個(gè)、或多個(gè)鍵值對(duì)信息。身份標(biāo)識(shí)
一般情況下,瀏覽器發(fā)起第一次請(qǐng)求時(shí),服務(wù)器回復(fù)給瀏覽器一份Cookie信息,并在服務(wù)端存儲(chǔ)一份,下次瀏覽器再訪問該服務(wù)器時(shí),瀏覽器會(huì)帶上服務(wù)器設(shè)置的Cookie,服務(wù)器收到之后,檢查發(fā)現(xiàn)這個(gè)Cookie標(biāo)識(shí)之前曾經(jīng)訪問過,就會(huì)將服務(wù)器上有效保存的一些數(shù)據(jù)傳給瀏覽器。
Cookie一般都有過期時(shí)間。
客戶端可以自己設(shè)置Cookie信息,甚至是其他人的Cookie(只要你能得到),這樣就能以別人的身份登陸服務(wù)器(Cookie沒過期情況下)。
所以Cookie必須安全保管,不可以泄露。
?
?
URL:
uniform resource locator 統(tǒng)一資源定位符,每一個(gè)鏈接指向一個(gè)資源供客戶端訪問。
schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]
?
schema 協(xié)議、模式:
http、ftp、https、file、mailto等等。
?
host:port
host可以是ip地址也可以是域名,port默認(rèn)是80,用冒號(hào)相連。
?
/path/to/resource
path 為webserver上的一個(gè)同名資源路徑,或者一個(gè)alias目錄別名。
resource 資源名
?
index.php?key1=value1&key2=value2
query string,查詢字符串,表示向index.php資源獲取指定字符串,?號(hào)分割,后面key=value格式,多個(gè)kv對(duì)用&分割。
?
?
HTTP消息:
消息分為Request、Resphone。
Request:瀏覽器向服務(wù)器發(fā)起的請(qǐng)求
Resphone:服務(wù)器對(duì)客戶端請(qǐng)求的響應(yīng)。
?
請(qǐng)求和響應(yīng)消息都是由請(qǐng)求行、Header消息報(bào)頭、Body消息正文組成。
請(qǐng)求行:
https://github.com/ysrc/xunfeng/blob/master/vulscan/vuldb/iis_webdav_rce.py
?
Header消息報(bào)頭:
GET /ysrc/xunfeng/blob/master/vulscan/vuldb/iis_webdav_rce.py HTTP/1.1 Host: github.com Connection: keep-alive Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36 Upgrade-Insecure-Requests: 1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en;q=0.8?
Body消息正文:
通常出現(xiàn)在POST請(qǐng)求方法中:
username=admin&password=123456
?
轉(zhuǎn)載于:https://www.cnblogs.com/i-honey/p/8110828.html
總結(jié)
以上是生活随笔為你收集整理的[Python web开发] Web框架开发基础 (一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买了个二手车,回来发现没有三元催化怎么办
- 下一篇: 电动车突然没电黑屏是咋回事?