客户端和服务器端进行交互,要利用http协议,但是http协议本身是没有状态的,没有记忆功能,比如连接一次,你需要录入某个账号密码,浏览器关闭这次会话就结束了,但是我们经常用到一个功能就是记住密码那个,这个是谁完成的?或者验证 你是否登陆过的状态 啥的 ,这些技术谁帮助我们实现的?那么就需要我们接下来要讲的两个技术了:cookie和session

首先学习Cookie:

1.名字的由来:

cookie--小甜品的意思,为啥起这个个名?因为在网页中可能会出现 :你好珊珊,这会让我们感觉很亲切,就好像吃了一个小甜品一样开心(汗。。)--- 我们所说的cookie 就是浏览器的缓存

2.验证Cookie的存在----演示效果:

(1)打开谷歌搜索京东,随便将一个商品加入购物车:

(2)然后关闭谷歌浏览器,再重新打开谷歌,搜索京东并且查看购物车,看商品还在吗?在

说明了什么:说明我添加的这个购物的信息,它的信息被存在了一个地方,所以才能读取的到啊。。 那么这个信息存哪里了呢?前台还是后台呢? 不知道啊,都有可能的。。

(3)关闭谷歌,打开火狐,搜索京东然后查看购物车,商品还在吗?不在

说明了啥?这个数据肯定不是保存在后台或者数据库了,要是在后台或者数据库 ,两个浏览器肯定都可以获取到的。所以只能说明,刚才的那个数据保存在谷歌浏览器上了,保存在哪里呢?就是谷歌浏览器的缓存--Cookie

3.那我们就详细讲一下:Cookie--浏览器缓存

(1)什么是Cookie:

(先大致读一下,然后下面用代码去体会这个话的含义)

(2)根据原理在服务器端创建Cookie吧:

服务器端的Cookie是由javax.servlet.http.Cookie类封装的。

每个Cookie都是该类的对象。

服务器通过该类对象 对客户端Cookie进行操作。

API截图:(看一眼就可以)

上面的表示是:创建的cookie 是 少量的数据从Servlet---》浏览器--->server

那么我们就按照这个步骤模拟一下:

(1)创建servlet

public class CookieServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//1.在serlvet中创建一个cookie:Cookie co=new Cookie("diannao", "dell");

//2.发送至浏览器:resp.addCookie(co);

}

}

浏览器用F12查看效果:

图中效果可以看到,cookie是在服务器端产生,然后响应给了浏览器!

第二次请求:可以请求项目下的任意页面,都发现cookie携带在request请求中:

哪怕我请求一个不存在的页面,cookie都是携带在request中的:

上面的现象证明:cookie是在服务器端产生,然后响应给了浏览器,随后浏览器在访问的时候,就会携带cookie信息!

现在,我浏览器关闭,再次访问项目,发现cookie不见了:

(3)那我发现了一个问题!!!那么上面的cookie,在浏览器关闭之后就消失了,但是我们刚开始演示的那个京东购物车的那个案例,同一个浏览器即使是关闭了再打开,还是可以看到信息的呀?这两个cookie有啥不一样吗?我们不一样。。

所以浏览器关闭就没了的cookie,属于 非持久cookie 。

那么我们能否也创建一个 持久的cookie呢?

public class CookieServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//1.在serlvet中创建一个cookie:

Cookie co=new Cookie("diannao", "dell");

//2.将内存cookie变成硬盘cookie,也就是存在硬盘上:并且设置一个保存的时间:

//参数的单位是:秒

co.setMaxAge(60*2);

//3.发送至浏览器:

resp.addCookie(co);

}

}

上面发现:在两分钟以内(在设置的时间内),我们访问项目的时候一直都是有diannao的cookie的。但是两分钟后再次访问,就不在了。这就是持久cookie,当然这个持久也是有时间限制的!

上面的逻辑你要是看懂了,可以自己实现一下 三天免登陆怎么实现!不会的去网上找找代码,很多案例。。。我就不写了 我主要是讲讲cookie原理!

下一篇 再写一个session~~~bye~~~

知乎cookies的介绍_Cookie简介相关推荐

  1. 知乎cookies的介绍_知乎更新隐私政策:不点同意可选“仅浏览”,相关数据一月内删除...

    近年来,不时出现的大型互联网公司数据外泄丑闻,让人们对企业是否有能力保护自己的隐私产生了忧虑.为了赢得消费者的信任,隐私保护在当下已然成为一家公司的核心竞争力. 不久前,苹果上线隐私数据管理网站,以便 ...

  2. 知乎cookies的介绍_使用cookie登陆知乎

    只是想说明一个问题,Cookie可以维持登录状态,有些网页当中,访问之后的cookie里面带有登陆账号,和登陆密码,这样可以使用cookie直接访问网页,如知乎,首先登录知乎,将Headers中的Co ...

  3. java程序设计专业介绍_简介Java编程中的Object类

    这篇文章主要介绍了简介Java编程中的Object类,是Java入门学习中的基础知识,需要的朋友可以参考下 Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每 ...

  4. android知乎日报中的动画,开发Android知乎日报(一)简介

    对于一个新手来说开发一个完整点的项目还是会有点难度的,可是真的开发过了就会明白,其实开发一个项目,知识已知知识点的堆叠,今天我从0开始开发一个知乎日报,希望能给新手一些帮助吧.代码会同步到GitHub ...

  5. 知乎里怎么看个人简介_怎么写简历中的自我评价?

    真的不忍心再看到这么多像我一样的失足青年...所以必须要来说两句了. [自我评价]可以说是简历上最大的雷区了,绝大部分人都踩过,然后被炸死,见不到迷人的HR... ------------------ ...

  6. Flink:史上最详细的介绍(一)[简介]

    1.Flink简介 Flink:史上最详细的介绍(二)[架构体系] Flink:详细的不能再详细的安装步骤(三)[安装步骤] Flink:详细讲解FlinkFlink 运行架构(四)[运行架构] Fl ...

  7. java struts 介绍_Struts简介、原理及简单实现

    struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...

  8. python中cookies怎么用_Cookie在python爬虫中怎么用?Cookielib又是什么?

    我们登录一个网页或者软件的时候,都要输入账号才能进入界面,随后就可以看其中的内容了.Cookie就类似于担任一个审查员的身份.对想要访问人的身份进行大大小小的审核,合格的才能放任通行,之后我们就可以愉 ...

  9. 华为hcie认证工程师里一定要知道的Radius 基本介绍

    华为hcie认证工程师Radius 基本介绍为实现对于用户的认证.授权以及审计的工作,实现远端AAA 功能,其中一种广泛使用的方式就是利用Radius 协议.RADIUS可以实现例如以太网接入等多种用 ...

最新文章

  1. 开源许可证 如何工作_开源许可证的工作方式以及如何将其添加到您的项目中...
  2. 编解码器架构中的桥(bridge)指什么
  3. executeQuery,executeUpdate,execute区别
  4. 服务器控件中js脚本注册方法
  5. hdu5459(2015沈阳网络赛J题)
  6. 硬件:笔记本常见故障处理技巧与思路,值得收藏!
  7. python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包
  8. Gradle善良:获得更多的依赖性见解
  9. compress命令--Linux命令应用大词典729个命令解读
  10. nib和xib的区别
  11. 【CodeForces - 195A】Let's Watch Football (追及问题,模拟)
  12. C#接口的使用场合,接口应用
  13. Playframework项目启动后自动停止问题记录
  14. validate使用
  15. 50份Word简历模板,全都免费领取,送给最需要的你
  16. 别乱说,算法才不是脑筋急转弯
  17. PDF按页拆分为PDF单页或者图片
  18. RFID固定资产盘点的解决方案
  19. 如何修改sql服务器名,修改计算机名并更新sqlserver中存储的服务器名称
  20. linux gnuplot 教程,图形绘制利器:Gnuplot

热门文章

  1. SVN: is scheduled for addition, but is missing
  2. 填色涂鸦好工具,色彩艳丽又卫生,ohuhu马克笔体验
  3. Vue学习笔记——第二部分
  4. 【Arduino】基于Arduino单片机的小型气象站设计
  5. 一看就懂系列之Golang的goroutine和通道
  6. 漫画|讲解一下如何写简历项目
  7. 更改谷歌浏览器默认安装位置(实用!)
  8. Rector模式和Proactor模式
  9. .NET Reactor加密过的程序,配置license证书后异常解决办法
  10. TCP/IP协议族四层模型简述