简单理解cookie

饼干:。是浏览器端存储数据的技术服务器不能存储的cookie,但是服务器可以发送请求命令浏览器存储的cookie。


如何存储cookie
        在文档中有一个属性叫cookie
        cookie是一个键值对,是一个使用等号连接的键值,是一个字符串
        cookie直接使用赋值来追加数据
        多个cookie的数据使用分号空格连接,并且他也是一个字符串
cookie的存储特点
        1> cookie默认是生命周期是浏览器关闭以前
        2> cookie在多个页面中可以共享数据
        3> cookie可以伴随http请求传递数据
        4> cookie在存储非ascii码的时候要使用指定方法来转换
            escape,unescape
            encodeURI,decodeURI
            encodeURIComponent,decodeURIComponent
        5> cookie的存储可以设置生命周期
            给每一个cookie值添加一个属性expires,其取值为一个时间类型的字符串
            今天基本上使用max-age来代替expires属性,max-age取值是秒数
        6> cookie的访问级别(路径)
            使用路径属性可以配置的cookie的访问级别,即哪一个文件夹下的文件可以访问该cookie的
            默认是./
            如果希望上一级目录可以访问,路径就给赋值上一级目录的目录名
            如果希望整个网站都可以访问,那么使用path = /即可
        7> cookie不能够跨域,但是可以是设定同域的访问级别(域)
        8> cookie还有一个特性安全
            cookie会伴随着http请求发送。
            安全如果设置为真表示只有在https请求的时候发送
        9>一般如果希望不使用cookie来存储数据(会随着HTTP请求提交)
            可以使用隐藏域:<input type =“hidden”>
            html5开始引入了其他的存储数据的办法:本地存储(localStorage的)



如何读取饼干的中数据
    读取的时候会将所有的数据都一并取出来,但是并非全部数据我都需要,因此这里需要对数据进行解析
    的cookie数据格式:“键=值; 键=值; 键=值”
    获得数据的时候理论上的英文利用键名取对应的值
    字典搜索结构(键值对结构)

代码示例

 //cookie的操作:
        String str=genRandomString(4);
        //写cookie(cookie的名称与值)
        Cookie cookie=new Cookie("yanzhengma",str);

        //过期时间
        cookie.setMaxAge(10000);

        //只允许服务端读取
        cookie.setHttpOnly(true);

        //保存cookie到客户端
        response.addCookie(cookie);

        // 设置生命周期为0,表示将要删除
        cookie.setMaxAge(0);
        // 执行添加后就从response里删除了
        response.addCookie(cookie);

        //读取cookie
        Cookie[] cookies = request.getCookies();
        for(Cookie ck:cookies){
            System.out.println(ck.getName()+"="+ck.getValue());
        }

猜你喜欢

转载自blog.csdn.net/Future_LL/article/details/81176809