cookie使用

cookie介绍

cookie是浏览器保存在用户计算机上的少量数据,他与特定的WEB页或者WEB站点进行关联起来,自动地在WEB浏览器与WEB服务器之间传递

浏览器会将domain和path都相同的cookie保存在一个文件里,cookie间用*隔开。

  • Path-路径  ---在某个域名下的cookie保存目录

        如果在http://www.baidu.com/test/index.html建立一个cookie,那么就在http://www.baidu.com/test/这个目录里就创建了一个cookie。

假设cookie的路径如下

/

/test

/test/test2

/test345

/test555/test666

注意事项:

  1. 相同键名的Cookie可以存在于不同的路径下,如果同一个目录下键名相同新建的会覆盖之前的
  2. 删除时,若果当前路径下没有键为key的cookie,则查询全部的父路径,检索到就执行删除操作(每次只能删除一个与自己最近的父路径cookie)

        a . 必须指定与设定cookie时使用的相同的路径来删除cookie,而且cookie的键名不论大写,小写或大小混合都要指定路径

        b . 键名为小写的时候,如果当前的路径为/test/test2,如果找不到再向上查询/test,/test555,/test345,如果还找不到就查询/。(/test555/test666不查询)

             键名大小写混写或者大写的时候,不指定路径默认删除当前路径,并且不向上查询

  1. 读取cookie的时候只能读取直接父类的cookie
  2. 再做java的web项目的时候,由于一般的Web服务器(如tomcat或者jetty)都用Context来管理不同的WebApplication,这样队友每个Context都有不同的path,在一个Server中有多个Web Application时要特别小心,不要设置Path为/的Cookie,容易误操作(当然前提是域名相同 )
  • Domain-域

指定关联的WEB服务器或者域。值是域名,比如baidu.com.,这是对path路径属性的一个延伸。如果我们想mp3.baidu.com能够访问test.baidu.com设置cookie。我们可以将domain的属性设置成“baidu.com”,这样mp3.baidu.com与test.baidu.com就都能访问到了。如果要在mp3.baidu.com创建一个mp3.baidu.com不能访问只有test.baidu.com能访问的cookie,那么就要将cookie的domin属性设置成”test.baidu.com”

注意:不能把cookie域属性设置成与设置它的服务器所在域不同的值。

  • Secure-安全

指定cookie的值通过网络如何在用户与WEB服务器之间进行传递。这个属性的值字在浏览器中或许为”secure”获取为空(在java中用true,false设置,默认为false)。在缺省状态下,该属性为空,也就是使用不安全的http协议进行传递数据。如果cookie标记为secure,那么,他与WEB服务器之间就通过https或者其他安全协议传递数据。不过设置了secure属性其他人还是能在本地看到你机器本地保存的cookie。也就是说:cookie设置secure。只保证cookie与WEB服务器之间数据传输过程中进行加密,而保存在本地的cookie不加密。如果想让本地cookie也加密,得自己加密数据。

  • Expires-过期时间

指定cookie的生命期。具体的值是指过期时间。默认关闭浏览器即过期,如果想要保存更长的时间就要设置日期,当过了到期日期,浏览器会删除cookie文件。现在已经被max-age属性所取代,max-age用秒来设置cookie生存期

java中操作cookie

  1. 设置cookie
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60);//设置生存期秒为单位。设置为负值的话,关闭浏览器就失效
cookie.setPath("/test/test2");//设置cookie路径。不设置的话,默认当前路径
response.addCookie(cookie);

   2.   读取cookie

private String getCookieValue(HttpServletRequest request, String name) {
        Cookie[] cookies = request.getCookies();
        String cookieValue = null;
        String cookieName = "";
        if (cookies != null && cookies.length > 0) {
            for (Cookie cookie : cookies) {
                cookieName = cookie.getName();
                if (name.equals(cookieName)) {
                    cookieValue = cookie.getValue();
                    cookieValue = URLDecoder.decode(cookieValue);
                    break;
                }
            }
        }

        return cookieValue;
    }

    3.    删除cookie

Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0); //设置为0为立即删除该Cookie
cookie.setPath("/test/test2"); //删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookie
response.addCookie(cookie);

    4.    修改cookie

Cookie cookie = new Cookie("key", "newvalue");
cookie.setMaxAge(60);//设置生存期秒为单位。设置为负值的话,关闭浏览器就失效
cookie.setPath("/test/test2");//设置cookie路径。不设置的话,默认当前路径
response.addCookie(cookie);
当域相同,path相同,key相同的时候,重新创建cookie默认将原来的值value覆盖为新的newvalue
时间: 2024-12-20 10:22:01

cookie使用的相关文章

COOKIE+SESSION

cookie的缺点: 因为cookie保存在浏览器上,所以安全性低可控性比较差,只能存放字符串大多数的浏览器对cookie有4K的限制. 下面是cookie在浏览器和服务器中请求与响应的过程: 1.    COOKIE的工作原理 cookie过程描述 网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密) 用户第一次访问你的网站->在服务器端会将用户的信息设置为cookie(可以理解为制造饼干过程)->通过http协议发送给用户(浏览器),在用户端,coo

会话技术Session&Cookie

一.会话技术简介 1.存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪     里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话技术是帮助服务器   记住客户端状态(区分客户端) 举例购物过程: 2.会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,成为一次会话.会话技术就是记录这次会话中客户端的状态与数据的. 会话技术分为Cookie和Sessio

JS设置读取删除cookie及表单交互

学习cookie和表单交互留下的一点笔记 什么是cookie?cookie 是存储于客户端的变量.当设备请求页面时,就会发送cookie.首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式.各个cookie之间一般是以";"分隔.JS设置cookie:document.cookie= key + '=' + value + ';expires=' + Date;其中Date为cookie的过期时间.实际案例: //setCo

session和cookie的区别

原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你. Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cook

cookie和session得区别

1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据. 2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间. Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了. 注:为这个用户创建的Cookie的名称是aspsessionid.这个Cookie的唯一目的就是为每一个用

javaWeb基础知识----Cookie,Session

?HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的,浏览器的每一次请求都是完全孤立的 ?即使 HTTP1.1支持持续连接,但当用户有一段时间没有提交请求,连接也会关闭. ?怎么才能实现网上商店中的购物车呢:某个用户从网站的登录页面登入后,再进入购物页面购物时,负责处理购物请求的服务器程序必须知道处理上一次请求的程序所得到的用户信息. ?作为 web 服务器,必须能够采用一种机制来唯一地标识一个用户,同时记录该用户的状态 1.会话和会话状态 ?WEB应用中的会

Session和Cookie的使用总结

转:http://www.cnblogs.com/shuang121/archive/2011/03/02/1968768.html Session和Cookie的使用总结: Session和cookie都是asp.Net中的内置对象,至于他们有什么区别,在这里就不在多说,现在来说说一些比较实用点的东西: 我们知道网站都有一个后台管理系统,其中有登录和退出两个功能,在登录的时候我们往往会把用户的信息保存到session或者cookie中,以便后面使用,那么在登录的时候我们要注意哪些呢? 1.把一

学习日常笔记<day11>cookie及session

1.会话管理 1.1会话管理定义 会话管理:管理浏览器客户端和服务端之间的会话过程中产生的会话数据 域对象:实现资源之间的数据共享 request 域对象 context 域对象 1.2.会话技术 Cookie技术:会话数据保存在浏览器客户端中 Session技术:会话数据保存在服务器端 2.Cookie技术 2.1 特点 Session技术:会话数据保存在服务器端 2.2Cookie技术核心 Cookie类:用于存储会话数据 1)构造Cookie对象 Cookie(java.lang.Stri

Cookie和Session

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. Cookie机制 Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向

Django进阶(路由系统、中间件、缓存、Cookie和Session

路由系统 1.每个路由规则对应一个view中的函数 url(r'^index/(\d*)', views.index), url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage), url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}), 2.根据app对路由规则进行一次分类 rl(r'^web/',include('web.urls')), 1.每个路由规则对应