什么是 Cookie
Cookie 是服务器保存在用户浏览器(电脑)上的小型文本文件,用来识别用户、保存少量信息。 流程:
- 服务器通过
Response.Cookies下发 Cookie,浏览器保存 - 后续浏览器访问该网站时,会自动把 Cookie 随同请求发给服务器
- 服务器用
Request.Cookies读取 Cookie
重点:
Response.Cookies写Cookie,必须放在<html>标签之前,否则会报错(HTTP头已经输出,不能再设置Cookie)。
1. 创建简单Cookie(单个值)
<%
' 创建cookie,名字firstname,值Alex
Response.Cookies("firstname")="Alex"
' 设置过期时间,不设置的话,浏览器关闭cookie就消失(会话Cookie)
Response.Cookies("firstname").Expires=#May 10,2012#
%>
<html>
<body>
...
</body>
</html>
Code language: HTML, XML (xml)
- Expires:过期时间。一旦到时间,浏览器自动删除这个Cookie。
- 不写Expires:会话Cookie,关闭浏览器就失效。
2. 读取简单Cookie
Request.Cookies 读取客户端带过来的Cookie
<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>
Code language: JavaScript (javascript)
3. 带Keys的Cookie
Cookie集合,一个Cookie名下面存多个键值
一个Cookie名称下保存多组数据,叫做带Keys的Cookie。
<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>
Code language: JavaScript (javascript)
相当于:Cookie名字叫
user,里面有多个字段:firstname、lastname
读取单个key:
<%
dim fname
fname=Request.Cookies("user")("firstname")
response.write(fname)
%>
Code language: HTML, XML (xml)
4. 循环读取页面全部Cookie
判断HasKeys
Request.Cookies(x).HasKeys:判断这个Cookie是不是带Keys的集合。
HasKeys=True:这个Cookie下面还有多个子键,需要内层循环HasKeys=False:普通单值Cookie
<!DOCTYPE html>
<html>
<body>
<%
dim x,y
for each x in Request.Cookies
response.write("<p>")
if Request.Cookies(x).HasKeys then
'带keys,内层循环遍历所有子键
for each y in Request.Cookies(x)
response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
response.write("<br>")
next
else
'普通cookie,直接取值
Response.Write(x & "=" & Request.Cookies(x) & "<br>")
end if
response.write "</p>"
next
%>
</body>
</html>
Code language: PHP (php)
5. 删除Cookie
Cookie不能直接删除,原理:把过期时间设置成过去的时间,浏览器自动清理
<%
Response.Cookies("firstname")="Alex"
Response.Cookies("firstname").Expires=#Jan 01,1990#
%>
Code language: PHP (php)
Previous: 表单提交与服务器接收
Next: Session