前端通过js可以获取当前域的cookie,js使用document.cookie可以获取和设置cookie
后端在报文里可以使用setCookie设置cookie
cookie有如下几个字段:
- name 名称
- value 值
- domain 域 cookie是不可跨域的,加载domain域资源时会携带对应的cookie
- HttpOnly 出现则只能由服务端读取,但是这个字段前后端都可以设置
- path 只有在domain下的指定路径(path)下才会被发送
- expires 过期时间
- secure 出现这个字段则只有在https或tls的情况下才会被发送
- SameSite 设为strict只有请求url和当前url相同才会法从cookie,lax只有get请求可以带cookie,none则不会有限制
限制:
- 每个cookie大小不超过4k
- 每个域名不超过20个cookie(按浏览器类型分不同)
- 总共不超过300个cookie
- 如果数量超出限制,会按照浏览器的规则删除cookie,IE和Opera按照最少使用原则删除,FireFox会随机删除,所以最好不要超出限制
- 如果cookie大小超出限制,会被静默删除