cookie

cookie以键值对存储,存在客户端本地;因为是键值对存储,所以只能存一些简单的数据(如文本),不能存图片,视频。音频

cookie实质上是服务器通知浏览器(也就是客户端)存储的数据

一旦浏览器保存了某个网站cookie,下次浏览器再去访问的时候就会在请求头中自动提交出在自己本地的cookie信息(前提:两者必须是同一浏览器)cookie信息提交了,能用多少就不管了,用不用就看服务器的了;

每个浏览器都有自己的cookie文件夹,比如说百度的天猫的,都有自己的cookie

要告诉浏览器需要保存的cookie要注意:cookie必须加密(服务器要帮助客户端安全)也就是说保证随便下片,cookie也不会偷过去使用

流程:客户端请求网页到服务器,然后服务器说有3个cookie让你保存,这时候响应头里面就会多出set-cookie的键值;客户端下次再请求的时候,自带cookie;

服务器抓包保存形式:键+最大存活时间(格林尼治时间)

 

用法:在这些操作之后一定要记得提交 respond.addCookie(cookie对象);

  设置添加cookie: Cookie cookies = new Cookie(“键“, ”值“);

    设置添加cookie是要在服务器中设置的不是客户端,但是是客户端下次来带着cookie

  设置存活时间:setMaxAge();以秒为单位

    假如cookie的生命周期设置为0;那么cookie就相当于一次回话(Session),即存在内存中,关闭浏览器就消亡

  删除cookie:存活周期设置为0;setMaxAge(0);

  修改cookie:cookie cookies = new Cookie(”重复的键“, ”不同的值“);注意:修改之后如果不“续命”,之前哪怕设置周期一万年,他也会变成了会话

  取出cookie:获取客户端提交的cookie,放到cookie数组中遍历 Cookie[] cookies = request.getCookies();  c.getName()  c.getValue()

 注意:

  不设置存活时间setMaxAge(0);

    是不一样的;不设置存活时间是相当于一次会话(session),存在内存中,当浏览器关闭时,才会消亡

    而setMaxAge(0)就是杀死他,如果一开始创建之后,设置为0,那么response响应时,他也已经死了;但是==》如果你在后面修改他,设置生存周期给他续命,再提交他就不会死(设置周期0提交后再设置提交依然有效,所以也可以不用修改,直接设置生命周期)

cookie与session区别:

 

  cookie(公交卡)不是你制造的(公交造的),但是数据是跟着cookie走,上公交你得带着公交卡吧,不带就丢数据(因为cookie存本地)了

 

  session(银行卡)实名制,只要你人来,能够证明你的身份,这卡不卡的都无所谓,(因为session数据存在内存中,服务器能帮你找到)

 

  

posted @ 2018-03-10 15:10  乱马1/2  阅读(72)  评论(0)    收藏  举报