網頁的內容是HTML代碼編寫的,文字,圖片等內容均經過寫好的HTML代碼來指定,這種頁面叫做靜態網頁;這種網頁缺陷很大,如可維護性差,不能根據URL靈活多變的顯示內容等;如想要給網頁的URL傳入一個name參數,讓其在網頁中顯示出來,這是沒法作到的。web
動態網頁能夠動態解析URL中的參數變化,關聯數據庫並動態呈現不一樣的頁面內容,靈活多變;動態網站還能夠實現用戶登陸和註冊功能數據庫
HTTP的無狀態是指HTTP協議對事務的處理沒有記憶能力,也就是說服務器不知道客戶端是什麼狀態。瀏覽器
此時用於保持HTTP鏈接狀態的技術就出現了,分別是會話(Session)和Cookies,會話在服務端,即服務器端,用來保持用戶的會話信息;Cookies在客戶端,即瀏覽器端,有了Cookies,瀏覽器在下次訪問網頁時會自動附帶上它發送給服務器,服務器經過識別Cookies並鑑定是哪一個用戶,而後判斷用戶是不是登陸狀態,而後返回對應的響應。安全
所以在爬蟲中,有時候處理須要登陸才能訪問的頁面時,咱們通常會直接將登陸成功後獲取的Cookies放在請求頭裏面直接請求,沒必要從新模擬登陸服務器
在web中,會話對象用來存儲特定用戶會話所需的屬性及配置信息,這樣,當用戶在用戶在應用程序的web頁之間跳轉時,存儲在會話對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去;當用戶請求來自應用程序的Web頁時,則Web服務器將自動建立一個會話對象;當會話過時或被放棄後,服務器將終止該會話。網站
Cookies指某些網站爲了辨別用戶身份,進行會話跟蹤而存儲在用戶本地終端上的數據編碼
1)會話維持 當客戶端第一次請求服務器時,服務器會返回一個請求頭中帶有Set-Cookie字段的響應給客戶端,用來標記是哪一個用戶,客戶端瀏覽器會把Cookies保持起來。當瀏覽器下次請求該網站時,瀏覽器會把此Cookies放到請求頭一塊兒提交給服務器,Cookies攜帶了會話ID信息,服務器檢查該Cookies便可找到對應的會話是什麼,而後再判斷會話來以此辨認用戶狀態。 在成功登陸某個網站時,服務器會告訴客戶端設置哪些Cookies信息,在後續訪問頁面時客戶端會把Cookies發送給服務器,服務器再找到對應的會話加以判斷。若是會話中的某些設置登陸狀態的變量時有效的,那就證實用戶處於登陸狀態,此時返回登陸以後才能查看的網頁內容,瀏覽器進行解析就能看到。反之不行。 2)屬性結構 Cookies有以下幾個屬性 A.name:該Cookies的名稱,一旦建立,該名稱便不可更改 B.Value:該Cookies的值,若是值爲Unicode字符,須要爲字符編碼;若是值爲二進制數據,則須要使用BASE64編碼 C.Domain:能夠訪問該Cookies的域名。 D.Max Age:該Cookies 失效的時間,單位爲秒,也常和Expires一塊兒使用,能夠經過它計算其有效時間。Max Age若是爲正數,則該Cookies在Max Age秒後失效。若是爲負數,則關閉瀏覽器時Cookies及失效 E.Path:該Cookie的使用路徑。若是設置爲/path/,則只有路徑爲/path/的頁面能夠訪問該Cookie。若是設置爲/,則本域名下的全部頁面都能訪問Cookies F.Size字段:此Cookie的大小 G.HTTP字段:Cookie的httponly屬性。此屬性爲true,則只有在Http頭中會帶有此Cookies信息。 H.Secure:該Cookies是否僅被使用安全協議傳輸。默認爲false