Python WEB框架php
WSGI,WEB Server Gateway Interface,能夠看作是一種底層協議,它規定了服務器程序和應用程序各自實現上面接口。Python的實現稱爲wsgirefhtml
Flask,基於WSGI,微框架python
Django,基於WSGI,開源的WEB框架git
C/S與B/S的區別github
學習web框架的目的:web
一、瞭解WEB框架工做機制編程
瞭解衆多框架背後的技術,未來能夠對框架作二次開發、定製改版瀏覽器
二、學習API封裝 安全
學習框架封裝的思想,並提供友好的編程接口服務器
HTTP協議:
http協議是無狀態協議。
同一個客戶端的兩次請求之間沒有任何關係,從服務器端角度來講,它不指定這兩個請求來自同一個客戶端。
有鏈接、短鏈接
有鏈接,HTTP基於TCP協議,是面向鏈接的,須要3次握手、4次斷開。
短鏈接,http 1.1以前,都是一個請求一個鏈接,而TCP的李連杰建立銷燬成本高,對服務器有很大的影響。因此,從http 1.1開始,支持keep-alive,默認也開啓,一個鏈接建立後,會保持一段時間(可設置),瀏覽器再訪問該服務器就使用這個TCP鏈接,減輕了服務器壓力,提升了效率。
Cookie:
一個、或多個鍵值對信息。身份標識
通常狀況下,瀏覽器發起第一次請求時,服務器回覆給瀏覽器一份Cookie信息,並在服務端存儲一份,下次瀏覽器再訪問該服務器時,瀏覽器會帶上服務器設置的Cookie,服務器收到以後,檢查發現這個Cookie標識以前曾經訪問過,就會將服務器上有效保存的一些數據傳給瀏覽器。
Cookie通常都有過時時間。
客戶端能夠本身設置Cookie信息,甚至是其餘人的Cookie(只要你能獲得),這樣就能以別人的身份登錄服務器(Cookie沒過時狀況下)。
因此Cookie必須安全保管,不能夠泄露。
URL:
uniform resource locator 統一資源定位符,每個連接指向一個資源供客戶端訪問。
schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]
schema 協議、模式:
http、ftp、https、file、mailto等等。
host:port
host能夠是ip地址也能夠是域名,port默認是80,用冒號相連。
/path/to/resource
path 爲webserver上的一個同名資源路徑,或者一個alias目錄別名。
resource 資源名
index.php?key1=value1&key2=value2
query string,查詢字符串,表示向index.php資源獲取指定字符串,?號分割,後面key=value格式,多個kv對用&分割。
HTTP消息:
消息分爲Request、Resphone。
Request:瀏覽器向服務器發起的請求
Resphone:服務器對客戶端請求的響應。
請求和響應消息都是由請求行、Header消息報頭、Body消息正文組成。
請求行:
https://github.com/ysrc/xunfeng/blob/master/vulscan/vuldb/iis_webdav_rce.py
Header消息報頭:
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消息正文:
一般出如今POST請求方法中:
username=admin&password=123456