博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java】【web】【计算机网络】cookie学习总结 2018-9-28
阅读量:2490 次
发布时间:2019-05-11

本文共 1586 字,大约阅读时间需要 5 分钟。

cookie学习总结

Cookie的操作:

  1. 创建Cookie对象.

    Cookie cookie = new Cookie(String name,String value);

    参数:

    name: 该当前Cookie取一个唯一的名字.
    value: 存储在Cookie的共享数据,只能是String类型.
    ​ Cookie cookie = new Cookie(“currentName”,“will”);

  2. 把Cookie放入响应中,响应给浏览器,把共享的数据存储在浏览器中.

    response.addCookie(cookie);

  3. 获取Cookie以及获取Cookie中的数据.

    因为Cookie存在在请求头中,所以应该通过request去获取.

    Cookie[] cs = req.getCookies();

    获取当前Cookie的名字: String name = cookie对象.getName();

    获取当前Cookie的值: String value= cookie对象.getValue();

  4. Cookie的中文问题.

    在Cookie中属性名和属性值都不能使用中文.

  5. 修改Cookie中指定属性名的属性值.

    需求:修改Cookie cookie = new Cookie(“currentName”,“will”);

    • 创建一个同名的新的Cookie.
      Cookie c = new Cookie(“currentName”,“Lucy”);
    • 获取该Cookie对象,通过setValue方法,重新设置新的value值.
      Cookie对象.setValue(“新的值”);
      注意:别忘了,重新把该Cookie放入响应中:resp.addCookie©;
  6. Cookie的分类(会话Cookie和持久化Cookie):

    会话Cookie: 关闭浏览器之后,Cookie就销毁了. 缺省情况.

    持久化Cookie: Cookie可以保存指定的时间段(3天,一周,一个月).
    设置Cookie的最大存活时间: cookie对象.setMaxAge(int seconds);

    • seconds == 0: 删除Cookie.
    • seconds < 0: 会话
    • Cookie.seconds > 0: 存储指定的秒数
  7. 删除Cookie: cookie对象.setMaxAge(0);

Cookie的domain:

Cookie的path是在同一主机中指定共享Cookie,如果主机不同那么就一定不能共享Cookie,无论path是什么。

如果希望不同的二级域名中可以共享Cookie,那么就要设置Cookie的domain和path了。

例如:、、,它们的域名不同,但百度希望它们之间可以共享 Cookie,那么就要设置domain了。

1). 设置Cookie的path为“/”,例如:cookie.setPath("/");在整个baidu.com中都能传递.

2). 设置Cookie的domain,例如:cookie.setDomain(".baidu.com"),其中domain中没有指定域名前缀!

Cookie的缺陷:

  1. 多个人使用同一台电脑的时候,可以查看浏览器的Cookie,不安全.
  2. Cookie存储中文比较麻烦(得编码,再解码).
  3. Cookie的value是String类型,一个Cookie就只能存储一个数据,如果需要存储多 个数据,就得死还有N个Cookie.
  4. 一个站点对Cookie有限制:
    ​ Cookie大小限制在4KB之内;
    ​ 一台服务器在一个客户端最多保存20个Cookie;
    ​ 一个浏览器最多可以保存300个Cookie;
  5. 在设计上就有问题,考虑生活中问题.
    ​ Cookie是浏览器和服务器之间数据交互的凭证.
    ​ 在生活中,我们是把识别数据存储到服务端

转载地址:http://kqxrb.baihongyu.com/

你可能感兴趣的文章
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>
NoC片上网络
查看>>
开源SoC整理
查看>>
【2020-3-21】Mac安装Homebrew慢,解决办法
查看>>
influxdb 命令行输出时间为 yyyy-MM-dd HH:mm:ss(年月日时分秒)的方法
查看>>