标签:特殊 nlog 格式 安全协议 host 跨域 access 用途 客户
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的一个字段发起请求。
如http://localhost:8080或者http://192.168.1.10:8080下无法设置cookie。
设置cookie时可以指定domain域名,子域名可以共享主域的数据,删除时也必须明确指定域名,否则无法删除。
设置cookie时不指定域名,使用默认值,则表示只有当前域名可见,删除时也不需要指定域名,否则无法删除。
不设置的情况下,只有设置该cookie的URI及其子路径可以访问,在做单点登录时,path设置为/,就可以支持域名下的任意路径都带上该数据。
不设置的情况下,默认有效期为session,即会话cookie。设置的时候,格式必须是GMT格式的时间(可以通过 new Date().toGMTString()
或者 new Date().toUTCString()
来获得)。
当请求时https或者其它安全协议时,包含secure选项的cookie才能被发送到服务器。
带点:任何 subdomain 都可以访问,包括父 domain
不带点:只有完全一样的域名才能访问,subdomain 不能(但在 IE 下比较特殊,它支持 subdomain 访问)
1、必须是1-9、a-z、A-Z、. 、- (注意是-不是_)这几个字符组成
2、必须是数字或字母开头
1、字符必须是在 0x20-0x7E之间,并且不能出现”;”号
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到后端。
标签:特殊 nlog 格式 安全协议 host 跨域 access 用途 客户
原文地址:https://www.cnblogs.com/asfeixue/p/9226472.html