zoukankan      html  css  js  c++  java
  • Cookie中定义分类,优缺点及Cookie信息的设置,读取和删除

    Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据。Request和Response对象都有一组Cookie。Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器。反过来,如果你希望把Cookie发送到客户机,就可以使用Response.cookie
    Cookie 其实是一个标签,经常可能听到的中文翻译:小舔饼。当你访问一个需要唯一标识你的站址的 WEB
    站点时,它会在你的硬盘上留下一个标记,下一次你访问同一个站点时,站点的页面会查找这个标记。
    每个 WEB
    站点都有自己的标记,标记的内容可以随时读取,但只能由该站点的页面完成。每个站点的Cookie与其他所有站点的Cookie存在同一文件夹中的不同文件内(你可以在
    win98 的 Windows 目录下的 Cookie 文件夹中找到它们,而 win2k 则在 Documents and Settings 文件夹下特定用户的
    cookies 文件夹中)。
    一个 Cookie 就是一个唯一标识客户的标记,Cookie 可以包含在一个对话期或几个对话期之间某个 WEB
    站点的所有页面共享的信息,使用 Cookie 还可以在页面之间交换信息。这项功能经常被使用在要求认证客户密码以及电子公告板、WEB 聊天室等 ASP 程序中。

    尽管现在听起来cookie没有什么激动人心的,但实际上利用它,你能实现许多有意义的功能!比如说:你可以在站点上放置一个调查问答表,询问访问者最喜欢的颜色和字体,然后根据这些定制用户的web界面。并且,你还可以保存访问者的登录密码,这样,当访问者再次访问这个站点时,不用再输入密码进行登录。

    当然,cookie也有一些不足。首先,由于利用cookie的功能可以编程实现一些不良企图,所以大多数的浏览器中都有安全设定,其中可以设置是否允许或者接受cookie(IE浏览器中“工具”--“Internet选项...”--“安全”--“自定义级别”--“Cookie的使用”;Netscape浏览器中“工具”--“Cookie管理器”--“管理贮存的Cookie”即可),因此这就不能保证随时能使用cookie。再者,访问者可能有意或者无意地删除cookie。当访问者的机器遇到“蓝屏”死机时,或者重新格式化硬盘、安装系统后,原来保存的cookie将全部丢失。最后一点,有一些最初始的浏览器并不能支持cookie。
    有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则不是)

    读取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。

    cookie的删除:首先在创建Cookie的同时,你要给Cookie设置一个有效时间。
    Cookie.Expries;  客户端会根据这个有效时间进行删除,如果不写。该有效时间默认为永久。所以会永远存在

    Response.Cookies["Cookies名称"].Expires = DateTime.Now.AddDays(10);
    //此次我设置的是有效时间为10天

  • 相关阅读:
    unistd.h文件
    error C3861: “getpid”: 找不到标识符
    #include <unistd.h> 的作用
    VS2013 配置pthread
    VS2008和VC6.0下使用pthread.h头文件
    文件下载之断点续传(客户端与服务端的实现)
    C++ 判断进程是否存在
    C/C++遍历进程和进程ID的小工具
    linux --> 文件系统十问
    网络通信 --> CRC校验
  • 原文地址:https://www.cnblogs.com/liulei00/p/3655954.html
Copyright © 2011-2022 走看看