zoukankan      html  css  js  c++  java
  • cookie

    cookie是什么?

    cookie是存储在浏览器中的纯文本,浏览器的安装目录会有专门的cookie文件夹存放各个域下设置的cookie。

    cookie用途?

    一般用于存储用户登录凭证,或者一些简单的业务信息。其容量有限,不适合存太多数据。

    cookie如何使用?

    如下所示,后端可以在response中通过addCookie操作,加入相应的cookie。

    Cookie cookie = new Cookie("userId", loginLogVO.getUserId().toString());
    cookie.setPath("/");
    cookie.setDomain("xxx.com");
    cookie.setMaxAge(30000);
    response.addCookie(cookie);

    客户端不需要做特殊的处理。浏览器识别到cookie有效的请求场合,会自动将相应的cookie作为header的一个字段发起请求。

    什么情况下,cookie会存在问题?

    • cookie不支持设置在ip,localhost等请求domain下。

    如http://localhost:8080或者http://192.168.1.10:8080下无法设置cookie。

    • cookie设置的domain

    设置cookie时可以指定domain域名,子域名可以共享主域的数据,删除时也必须明确指定域名,否则无法删除。

    设置cookie时不指定域名,使用默认值,则表示只有当前域名可见,删除时也不需要指定域名,否则无法删除。

    • cookie设置的path

    不设置的情况下,只有设置该cookie的URI及其子路径可以访问,在做单点登录时,path设置为/,就可以支持域名下的任意路径都带上该数据。

    • cookie设置的expires

    不设置的情况下,默认有效期为session,即会话cookie。设置的时候,格式必须是GMT格式的时间(可以通过 new Date().toGMTString()或者 new Date().toUTCString() 来获得)。

    • cookie设置的secure

    当请求时https或者其它安全协议时,包含secure选项的cookie才能被发送到服务器。

    • cookie设置domain前面是否带'.'

    带点:任何 subdomain 都可以访问,包括父 domain

    不带点:只有完全一样的域名才能访问,subdomain 不能(但在 IE 下比较特殊,它支持 subdomain 访问)

    • 不符合规则约束

    domain规则如下:

    1、必须是1-9、a-z、A-Z、. 、- (注意是-不是_)这几个字符组成 
    2、必须是数字或字母开头

    path规则如下:

    1、字符必须是在 0x20-0x7E之间,并且不能出现”;”号

    cookie value规则如下:

    1、会自动去除开头和结尾的引号” 
    2、如果包含以下规则字符则校验失败: 
    c < 0x21 || c == 0x22 || c == 0x2c || c == 0x3b || c == 0x5c || c == 0x7f

    • 发生跨域请求

    cors跨域时,是否携带cookie,存在如下限制:

    .withCredentials()方法可以激活发送原始cookie的能力,不过只有在Access-Control-Allow-Origin不是一个通配符(*),并且Access-Control-Allow-Credentials为’true’的情况下才行.

    后端在处理跨域时,需要做些相应的处理,

    response.addHeader("Access-Control-Allow-Credentials", "true");
    response.addHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));

    前端才能在跨域成功的基础上带上cookie到后端。

  • 相关阅读:
    oracle重命名数据库
    GridView分页的实现
    vb发post信息,非常简单,就一个函数
    第六周进度条
    软件工程作业
    进度条第五周
    四则运算设计03
    进度条03
    单元测试课堂作业
    个人作业02
  • 原文地址:https://www.cnblogs.com/asfeixue/p/9226472.html
Copyright © 2011-2022 走看看