Skip to content
On this page

cookie 大小(4KB)

当服务器收到 HTTP 请求时,服务器可以在响应头里设置一个 Set-cookie 选项,浏览器接收到响应后会自动保存下 Cookie,之后浏览器对该服务器的每一次请求中都会通过请求头把 Cookie 信息发送给服务器。通过以下 node 版本代码案例(通过 req.cookie 设置 cookie,而不是设置请求头的 Set-cookie字段)当请求了 '/' 路径 Cookie 就会保存如下图信息。后面请求其他 path (如:/login)时在以下代码中都能通过 'req.headers.cookie' 打印出请求携带的 Cookie 信息(即为浏览器保存的 Cookie)。

Cookie是保存在客户端磁盘上的,所以不宜占据太多磁盘空间。同时,Cookie是绑定在特定域名上的。当设定了一个Cookie之后,再给创建它的域名发一个请求时,还会包含该Cookie。所以对Cookie的限制是对每个域来说的。但各个浏览器也有不同: IE6及以下每个域名最多包含20个Cookie; IE7及以上每个域名最多50个Cookie; Firefox每个域名最多50个Cookie; Opera下每个域名最多30个Cookie; Sarafi和Chrome对每个域的Cookie数目没有严格限制。

1.过期时间设置(Expires 字段) 2.设置域(domain),指定 cookie 在哪个域下可以被接受 3.设置路径(path),指定 cookie 在当前主机下哪些路径可以接受 Cookie 4.设置不能通过 javascript 访问 Cookie。(HttpOnly字段) 5.设置一段时间过期。(Max-Age) 6.设置 secure 字段 7.设置 someSite ,它有三个可选值 None、strict、Lax

session

session是一种服务度机制,类似散列表结构来存储用户数据 浏览器第一次向客户端发送请求时,服务器会自动生成一个session和sessionid sessionid唯一标识这个session 服务器响应时把sessionid发送给浏览器 浏览器第二次向服务器发送请求时就会携带这个sessionid 服务器通过这个id找到对应的session获取用户数据

TIP

session保存在服务器,cookie保存在客户端 session中保存的时对象,cookie保存的是字符串 session不能区分路径,同一个用户访问一个网站期间,所有的session在任何一个地方都可以访问 cookie如果设置路径,则在某些地方不能访问 session需要借助cookie才能正常工作,如果禁用cookie,session则失效 客户端会在发送请求的时候,自动将本地存活的cookie封装在信息头发送给服务器

localstorage and SessionStorage(5101KB)

失效时间 sessionStorage的失效时间为当前会话是否被关闭, 如果当前会话中存储有key和value,会话关闭数据则消失,所以我们可以得到结论,sessionStorage的失效取决于会话 localStorage的失效时间为用户手动删除,相比sessionStorage的