什麼是 cookie?cookie 其實是乙個標籤,經常可能聽到的中文翻譯:小舔餅。當你訪問乙個需要唯一標識你的站址的 web 站點時,它會在你的硬碟上留下乙個標記,下一次你訪問同乙個站點時,站點的頁面會查詢這個標記。
每個 web 站點都有自己的標記,標記的內容可以隨時讀取,但只能由該站點的頁面完成。每個站點的cookie與其他所有站點的cookie存在同一資料夾中的不同檔案內(你可以在 win98 的 windows 目錄下的 cookie 資料夾中找到它們,而 win2k 則在 documents and settings 資料夾下特定使用者的 cookies 資料夾中)。
乙個 cookie 就是乙個唯一標識客戶的標記,cookie 可以包含在乙個對話期或幾個對話期之間某個 web 站點的所有頁面共享的資訊,使用 cookie 還可以在頁面之間交換資訊。這項功能經常被使用在要求認證客戶密碼以及電子公告板、web 聊天室等 asp 程式中。
當然,cookie也有一些不足。首先,由於利用cookie的功能可以程式設計實現一些不良企圖,所以大多數的瀏覽器中都有安全設定,其中可以設定是否允許或者接受cookie(ie瀏覽器中「工具」--「internet選項...」--「安全」--「自定義級別」--「cookie的使用」;netscape瀏覽器中「工具」--「cookie管理器」--「管理貯存的cookie」即可),因此這就不能保證隨時能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當訪問者的機器遇到「藍屏」宕機時,或者重新格式化硬碟、安裝系統後,原來儲存的cookie將全部丟失。最後一點,有一些最初始的瀏覽器並不能支援cookie。
◆ 怎樣利用cooklie?
有2種使用cookie的基本方式:
1、將cookie寫入訪問者的計算機(使用 response 命令)
2、從訪問者的計算機中取回cookie(使用 request 命令)
◆ 建立cookie的基本語法: response.cookies(cookie)[(key)|.attribute]=value
這裡的 cookie 是指定 cookie 的名稱。
而如果指定了 key,則該 cookie 就是乙個字典。
(測試一cookie是否為乙個字典可用後面**顯示布林值:<%=request.cookies("cookiename").haskeys%>。為true是字典,false則不是。 )
attribute 指定 cookie 自身的有關資訊。attribute 引數可以是下列之一 :
①domain 若被指定,則 cookie 將被傳送到對該域的請求中去。域屬性表明cookie由哪個**產生或者讀取,預設情況下,cookie的域屬性設定為產生它的**,但你也可以根據需要改變它。(response.cookies("cookiename").domain = "www.dwww.cn")
②path 為一路徑屬性,該屬性可以實現更多的安全要求,通過設定**上精確的路徑,就能限制cookie的使用範圍。如果未設定該屬性,則使用應用程式的路徑。(response.cookies("cookiename").path = "/maindir/subdir/path" )
③expires 指定 cookie 的過期日期。為了在會話結束後將 cookie 儲存在客戶端磁碟上,或在許多時候,我們希望能更長時間地在訪問者的計算機上儲存cookie。必須設定該日期。若此項屬性的設定未超過當前日期,則在任務結束後 cookie 將到期。
後面的**,就可以設定cookie的使用到期時間為「2023年1月1日」: response.cookies("cookiename").expires=#january 01, 2010#
後面的**,將設定cookie的過期時間為「cookie的建立時間+365天」:response.cookies("cookiename").expires=date+365
但最好不要隨便寫 response.cookies("cookiename").expires=date,這樣頁面之間的呼叫時值會為空。
執行下面的**將會在訪問者的計算機中建立乙個cookie,名字=visitorname,值=ken :
response.cookies("visitorname")="ken"
執行下面的**將會在訪問者的計算機中建立乙個cookie,名字=visitorname,值=表單中username的值
response.cookies("visitorname")=request.form("username")
你可以擴充套件下面的**成為cookie子關鍵值(cookiesubname),即cookie字典的生成。**如下:
response.cookies("visitorname")("firstname")="ken"
response.cookies("visitorname")("lastname")="baumbach"
◆ 讀取cookie的基本語法:request.cookies(cookie)[(key)|.attribute]
cookie 指定要檢索其值的 cookie。
key 可選引數,用於從 cookie 字典中檢索子關鍵字的值。
attribe 指定 cookie 自身的有關資訊。如:haskeys 唯讀,指定 cookie 是否包含關鍵字。
如果客戶端瀏覽器傳送了兩個同名的 cookie,那麼 request.cookie 將返回其中路徑結構較深的乙個。例如,如果有兩個同名的的 cookie,但其中乙個的路徑屬性為 /www/ 而另乙個為 /www/home/,客戶端瀏覽器同時將兩個 cookie 都傳送到 /www/home/ 目錄中,那麼 request.cookie 將只返回第二個 cookie。
案例分析:
◆ num.asp(通過留在本地磁碟上的cookie記錄一年內訪問本站的次數,第一次顯示「首次訪問」,以後顯示「第幾次訪問」)
<%
dim num
num=request.cookies("visitnum")
if num > "0" then
num=num+1
response.write "您已是第"&num&"次訪問本站點了。"
else
response.write "歡迎您首次訪問本站。"
num=1
end if
response.cookies("visitnum")=num
response.cookies("visitnum").expires=date+365
%>
◆ showcookie.asp(從cookies資料夾中遍歷出瀏覽器所有的cookie name,以及相關的字典cookie的顯示(藍字顯示))
<%
for each cookie in request.cookies
if request.cookies(cookie).haskeys =false then
response.write cookie & "=" & request.cookies(cookie)
response.write ("
") else
for each key in request.cookies(cookie)
response.write ("")
response.write cookie & ".("&key&")" & "=" & request.cookies(cookie)(key)
response.write ("
") next
end if
next
%>
◆ check.asp
'首先,設定頁面。然後,檢查表單變數(在同乙個頁面中)。如果表單變數存在,就建立cookie,並設定到期時間。
<%@ language="vbscript" %>
<%
bgcolor = request.form("bgcolor")
fgcolor = request.form("fgcolor")
pwd = request.form("pwd")
if bgcolor <>"" or fgcolor <>"" then
response.cookies("check")("bgcolor") = bgcolor
response.cookies("check")("fgcolor") = fgcolor
response.cookies("check")("pwd") = pwd
response.cookies("check").expires=#may 01, 2004#
end if
'接著,讀取cookie
bgcolor = request.cookies("check")("bgcolor")
fgcolor = request.cookies("check")("fgcolor")
pwd = request.cookies("check")("pwd")
'如果cookie在訪問者的計算機上不存在,就建立乙個表單,詢問相關資訊
if bgcolor ="" and fgcolor ="" and pwd="" then
%>
<%
end if
'如果cookie已經存在,並且bgcolor存在,就跳轉到color.asp。
if bgcolor <> "" then
response.redirect "color.asp"
end if
%>
◆ color.asp(顯示使用者愛好顏色的頁面特性)
<%
bgcolor=request.cookies("check")("bgcolor")
fgcolor=request.cookies("check")("fgcolor")
pwd=request.cookies("check")("pwd")
%>
<%response.write("")%>
你的密碼是:
<%response.write(" "&pwd&" ")%>
WCF學習 (三)深入認識WCF契約
從soa概念上講,契約屬於服務公開介面的一部分。乙個服務契約,定義了服務端公開的服務方法,使用傳輸協議,可訪問位址,傳輸的訊息格式等內容。換句話說 契約描述了該服務的功能和作用,它告訴soa系統中的其他節點這個服務是幹什麼的 1 服務契約 客戶端能夠執行的操作 a servicecontract 宣...
ASP高階學習必經之認識數學函式11種
在這篇asp之數學函式裡,以 的形式,讓大家了解到關於asp中能用到的數學函式,裡面包括乙個數的絕對值 乙個數的平方根,角度的正弦 余弦值等。函式 語法 功能 abs abs num 返回乙個數的絕對值 sqr squ num 返回乙個數的平方根 sin sin num 返回角度的正弦值 cos c...
鴻蒙應用開發學習系列 深入了解鴻蒙開發核心
本文將詳細地講解蒙應用開發的核心 ability和執行緒,帶你深入了解ability的fa feature ability 和 pa particle ability 兩種型別 並學習使用在harmonyos中用於處理執行緒間通訊的eventhandler機制 此外還有的詳細步驟教你使用鴻蒙的開發工...