上传文档网站开发,平台公司实体化转型,谷歌网站地图生成器,甘肃省seo关键词优化目录 简介cookiecookie生命周期 sessionsession生命周期 HTTP cookies示例application 简介
cookie、seesion、application三个都会缓存我们用户状态的数据#xff0c;使得我们在浏览器访问网站时可以更快速的获取到信息。 主要原因在于HTTP协议是无状态的#xff0c;我们每… 目录 简介cookiecookie生命周期 sessionsession生命周期 HTTP cookies示例application 简介
cookie、seesion、application三个都会缓存我们用户状态的数据使得我们在浏览器访问网站时可以更快速的获取到信息。 主要原因在于HTTP协议是无状态的我们每次访问服务器对于服务器来说都是一个单独的请求没有上下文的联系。以淘宝登录的例子来说明 假如我们输入我们的淘宝账号和密码登录后我们浏览商品、加入购物车、付款等步骤都会向服务器发出一条条的请求但是服务器怎么知道这些请求是你这同一个用户发的呢主要就是靠的cookie、seesion、application来实现的。
cookie
cookie是保存在客户端的Cookie是一种在客户端存储数据的机制用于在不同页面之间保持状态。
Cookie实际上是一小段的文本信息。客户端请求服务器如果服务器需要记录该用户状态就使用response响应信息向客户端浏览器颁发一个Cookie(唯一标识)。客户端会把Cookie保存起来。
当浏览器再请求该网站时浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
cookie生命周期
一般默认是当浏览器关闭时cookie自动销毁。这个可以通过服务器发送的设置信息来设置。例如
Cookie cookie new Cookie(username,helloweenvsfei); // 新建Cookie
cookie.setMaxAge(Integer.MAXVALUE); // 设置生命周期为MAXVALUE
response.addCookie(cookie); // 输出到客户端如果maxAge属性为正数则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的 Cookie持久化即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑只要还在maxAge秒之前登录网站时该Cookie仍然有效。如果maxAge为负数则表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效关闭窗口后该 Cookie即失效。这个cookie就不会持久化。如果maxAge为0则表示删除该Cookie。
详细内容参考Session、Cookie、Application的区别和用法
session
session是保存在服务端的Session是指在服务器上为每个用户创建的一个会话实例用于存储用户的登录信息和其他需要保持状态的数据。通过Session服务器可以识别用户并跟踪他们的活动。
刚刚了解到cookie是识别客户端的一个标识那我服务器怎么去使用这个标识呢 就是通过session机制。每个用户与服务器建立连接的同时服务器会自动为其分配一个SessionId。每个sessionId有一个value内容就是用来保存用户的状态。服务器给客户端响应时就通过set-cookie将这个sessionId发送给客户端浏览器就是刚刚的cookie。所以之后浏览器每次发来的请求都会通过cookie带上这个sessionId这是服务器就知道这个用户是谁将对应sessionId的value中的内容返回给客户端。
session生命周期
Session的生命周期是从用户第一次访问网站开始到用户关闭浏览器或者长时间不活跃超过一定时间结束。 在这个期间服务器会将Session存储在内存中以便快速读取和更新Session数据。但是由于内存有限如果有大量用户访问网站会导致内存占用过多从而影响网站的性能。因此开发人员需要谨慎使用Session并根据实际情况设置Session的过期时间以确保内存占用合理。
HTTP cookies示例
第一步客户端跟服务端请求连接 请求报文没有Cookie 信息的状态
GET /reader/ HTTP/1.1
Host: hackr.jp第一次请求时首部字段内没有Cookie的相关信息 第二步服务端响应信息 响应报文服务器端生成Cookie 信息
HTTP/1.1 200 OK
Date: Thu, 12 Jul 2012 07:12:20 GMT
Server: Apache
Set-Cookie: sid1342077140226724; path/; expiresWed,10-Oct-12 07:12:20 GMT
Content-Type: text/plain; charsetUTF-8这时可以看到服务端发送的响应消息头中有个Set-Cookie字段设置客户端的cookie信息 第三步客户端继续请求报文自动发送保存着的Cookie 信息
GET /image/ HTTP/1.1
Host: hackr.jp
Cookie: sid1342077140226724之后每次当前客户端请求时在请求头中都会带上cookie字段
application
application在服务端用来保存所有用户的公共信息。它包含了所有的页面、逻辑和数据。通过Application开发人员可以在整个应用程序中共享数据和状态。