隱藏表單域:
隱藏域是用來收集或發送信息的不可見元素,對於網頁的訪問者來說,隱藏域是看不見的。當表單被提交時,隱藏域就會將信息用你設置時定義的名稱和值發送到服務器上。
代碼格式:<input type="hidden" name="..." value="...">
屬性解釋:
type="hidden"定義隱藏域;
name屬性定義隱藏域的名稱,要保證數據的准確采集,必須定義一個獨一無二的名稱;
value屬性定義隱藏域的值
例如:<input type="hidden" name="ExPws" value="dd">
其實說白了就隱藏域不在前台顯視的,跟表單的元素一樣.有名字有數值,只是在提交數據是不可見的
其實說白了,就是從表中取值ID值,或者別的變量值,但在頁面中不顯示,然后經過<form action=xx.asp>的遞交到新一頁,通過request.form("隱藏域名的name")取出值。
如:
1、<input type=hidden name=coun value=<%=cc%>>
這里的隱藏域名為coun,值為<%=cc%>,假設前面cc=100的話,即值為100;
2、遞交表單<form action=xx.asp>到新頁面xx.asp;
3、在xx.asp頁中,使用request.write request.form("coun"),則在頁面中顯示的值就是100
這樣的解釋應該挺清楚了。
簡單來說就是
想要提取上一頁的某些信息,但在上一頁又不能顯示的這些東西就采用藏域
URL重寫
URL 重寫是截取傳入 Web 請求並自動將請求重定向到其他 URL 的過程。比如瀏覽器發來請求 hostname/101.html ,服務器自動將這個請求中定向為http://hostname/list.aspx ?id=101。
url重寫的優點在於:
1、縮短url,隱藏實際路徑提高安全性。
2、易於用戶記憶和鍵入。
3、易於被搜索引擎收錄。
cookie:
在網站中,http請求是無狀態的。也就是說即使第一次和服務器連接后並且登錄成功后,第二次請求服務器依然不能知道當前請求是哪個用戶。cookie的出現就是為了解決這個問題,第一次登錄后服務器返回一些數據(cookie)給瀏覽器,然后瀏覽器保存在本地,當該用戶發送第二次請求的時候,就會自動的把上次請求存儲的cookie數據自動的攜帶給服務器,服務器通過瀏覽器攜帶的數據就能判斷當前用戶是哪個了。cookie存儲的數據量有限,不同的瀏覽器有不同的存儲大小,但一般不超過4KB。因此使用cookie只能存儲一些小量的數據。
session:
session和cookie的作用有點類似,都是為了存儲用戶相關的信息。不同的是,cookie是存儲在本地瀏覽器,而session存儲在服務器。存儲在服務器的數據會更加的安全,不容易被竊取。但存儲在服務器也有一定的弊端,就是會占用服務器的資源,但現在服務器已經發展至今,一些session信息還是綽綽有余的。
cookie和session結合使用:
web開發發展至今,cookie和session的使用已經出現了一些非常成熟的方案。在如今的市場或者企業里,一般有兩種存儲方式:
1、存儲在服務端:通過cookie存儲一個session_id,然后具體的數據則是保存在session中。如果用戶已經登錄,則服務器會在cookie中保存一個session_id,下次再次請求的時候,會把該session_id攜帶上來,服務器根據session_id在session庫中獲取用戶的session數據。就能知道該用戶到底是誰,以及之前保存的一些狀態信息。這種專業術語叫做server side session。
2、將session數據加密,然后存儲在cookie中。這種專業術語叫做client side session。flask采用的就是這種方式,但是也可以替換成其他形式。
flask中使用cookie和session
一、cookies:
在Flask中操作cookie,是通過response對象來操作,可以在response返回之前,通過response.set_cookie來設置,這個方法有以下幾個參數需要注意:
key:設置的cookie的key。
value:key對應的value。
max_age:改cookie的過期時間,如果不設置,則瀏覽器關閉后就會自動過期。
expires:過期時間,應該是一個datetime類型。
domain:該cookie在哪個域名中有效。一般設置子域名,比如cms.example.com。
path:該cookie在哪個路徑下有效。
使用:
獲取:request.cookies.get(key, '默認值')
設置:resp.set_cookie(key, value, max_age=整數)
刪除:resp.delete_cookie(key)
二、session:
Flask中的session是通過from flask import session。然后添加值key和value進去即可。
client side session:Flask中的session機制是將session信息加密,然后存儲在cookie中。專業術語叫做client side session。
server side session:存儲在服務器,客戶端保存的時session_id(通過cookie完成)
使用:
獲取:session.get(key, '默認值')
設置:
session.permanent = True
session[key] = value
刪除:
指定刪除:session.pop(key, None)
清空所有:session.clear()