目录

  • 1 什么是cookie
  • 2 cookie的作用
  • 3 cookie的属性项
  • 4 cookie如何工作的
    • 4.1 如何使用cookie
    • 4.1 cookie失效时间控制
    • 4.2 后端服务器如何将Cookie添加到HTTP的Header中的呢
    • 4.3 浏览器如何将Cookie添加到HTTP的Header中的呢
    • 4.4 使用Cookie的限制

原创地址: https://blog.csdn.net/qq_41637061/article/details/92144660

1 什么是cookie

cookie是由后端服务器端创建保存在客服端一种数据库结构。浏览器请求和后端服务端响应都会携带创建的cookie来回传输。cookie在传输时存储在请求头和响应头中。

2 cookie的作用

保存用户与后端服务器的交互状态。由于HTTP是一种无状态协议,当用户第一次请求访问结束后,后端服务器服务器就无法知道下一次来访问的还是不是上次访问的用户,在这种情况下用户每次请求,后端服务器都会进行认证和授权这样增大了后端服务器的开销同时使用户信息更容易被截获。cookie的产生很好地解决了这些问题,通常情况下cookie与session是一起使用的。

3 cookie的属性项

cookie有两个版本:version0和version1,它们两种设置响应头的标识,分别是“Set-Cookie”和“Set-Cookie2”。这两个版本的属性项有些不同。但是version1已经被废弃了。

这是HTTP中文开发手则给出的解释。

Version 0属性介绍

属性 属性项介绍
NAME=VALUE 键值对,可以设置要保存的key/value,注意这里的NAME不能和其他属性项的名字一样
Expires 过期时间,在设置某个时间点后该Cookie就会失效,如expire=Wednesday,06-Now-88 22:10:01 GMT
Domain 生成该Cookie的域名,如domain=“www.zhangsenlin.cn”
Path 该Cookie是在哪个路径下生成的,如path=/admin/
Secure 如果设置了这个属性,那只会在SSH连接时才会回传该Cookie

4 cookie如何工作的

4.1 如何使用cookie

                 // 设置cookieCookie cookie = new Cookie("kk","123456");cookie.setMaxAge(-1);httpServletResponse.addCookie(cookie);

4.1 cookie失效时间控制

源码展示

意思大概是
maxAge = 0;//删除cookie
maxAge < 0; //关闭浏览器cookie失效
maxAge > 0; //指定秒后过期,单位为秒

4.2 后端服务器如何将Cookie添加到HTTP的Header中的呢


第4步通过调用generateCookieString方法将Cookie对象构造成一个字符串。

4.3 浏览器如何将Cookie添加到HTTP的Header中的呢

当我们请求url时,浏览器会根据url路径将符合条件的Cookie放到Request请求头中传回给服务器。

4.4 使用Cookie的限制

Cookie是HTTP头中的一个字段,虽然HTTP本身对对这个字段并没有多少限制,但是Cookie最终还是存储在浏览器里,所以不同的浏览器对Cookie的存储有一些限制。

浏览器版本 Cookie的数量 限制 Cookie的总大小限制
IE6 20个/每个域名 4095个字节
IE7 50个/每个域名 4095个字节
IE8 50个/每个域名 4095个字节
IE9 50个/每个域名 4095个字节
Chrome 50个/每个域名 大于80000
FireFox 50个/每个域名 4097个字节

下一篇:web之session

web之Cookies相关推荐

  1. DotNetCore Web应用程序中的Cookie管理

    原文来自互联网,由长沙DotNET技术社区编译.如译文侵犯您的署名权或版权,请联系小编,小编将在24小时内删除.限于译者的能力有限,个别语句翻译略显生硬,还请见谅. 作者简介:Jon(Jonathan ...

  2. 读白帽子讲WEB安全,摘要

    读<白帽子讲WEB安全>摘要 文章目录 我的安全世界观 安全三要素-CIA 如何实施安全评估 白帽子兵法 客户端安全 浏览器安全 同源策略 浏览器沙箱 恶意网址拦截 高速发展的浏览器安全 ...

  3. Yii--Sessions 和 Cookies

    Sessions 和 cookies 允许数据在多次请求中保持, 在纯 PHP 中,可以分别使用全局变量 $_SESSION 和 $_COOKIE 来访问,Yii 将 session 和 cookie ...

  4. HTTP cookies 详解

    HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解.首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知 ...

  5. 连肝 7 个晚上,总结了 66 条计算机网络的知识点

    作者 | 哪吒 来源 | 程序员小灰(ID:chengxuyuanxiaohui) 计算机网络知识是面试常考的内容,在实际工作中经常涉及.最近,我总结了66条计算机网络相关的知识点. 1.比较http ...

  6. tomcat的server.xml详解

    Tomcat服务器是由一系列可配置的组件构成,其核心组件是Catalina   Servlet容器,它是所有其他Tomcat组件的顶层容器.Tomcat的组件可以在<CATALINA_HOME& ...

  7. Laravel源码入门-启动引导过程(四)app/Http/Kernel.php

    2019独角兽企业重金招聘Python工程师标准>>> == 回顾 == 再来回顾一下 public/index.php ,代码如下(去掉详细注释部分). <?php // p ...

  8. 19道小米运维面试题

    第一部分:Linux基础 题目1: 有一百个图片文件,它们的地址都是 http://down.xiaomi.com/img/1.png http://down.xiaomi.com/img/2.png ...

  9. Tomcat目录结构及Tomcat Server处理一个http请求的过程

    http://blog.sina.com.cn/s/blog_62cb15980101jh9x.html 1.Tomcat的结构概述 Tomcat服务器是由一系列可配置的组件构成,其核心组件是Cata ...

最新文章

  1. 非抢占式优先算法例题_三维点云的经典算法与前沿技术有哪些?
  2. R绘制直方图(Histogram)
  3. Unicode和UTF-8的关系
  4. .net 调用url接口_.NetCore中Quartz.NET的依赖注入
  5. 质数判断,不同算法效率比较
  6. VS VC 读取 INI文件
  7. 前端学习(2244):计算器显示问题
  8. vlc文件服务器局域网,vlc流媒体服务器配置
  9. 68 SD配置-发票凭证配置-定义出具发票类型
  10. 怎样在DOS下查看屏蔽和开启端口了
  11. pop!_os_Pop!幕后花絮_OS Linux
  12. excel表中怎么插入visio_Excel工作表中的排序,你真的掌握吗?10张动图带你了解!...
  13. Linux学习总结(12)——Linux必须学会的60个命令
  14. 【分享】如何管理焦虑情绪
  15. 第一周(7.11)作业——1、自我介绍;2、决心书
  16. SQL JDBC下载
  17. 正交幅度调制(QAM)信号的产生与解调介绍及matlab实现
  18. 手把手教你接入支付宝支付
  19. linux定制欢迎界面motd,linux 界面 /etc/motd
  20. 如何将苹果手机中的M4A音乐转换为MP3格式 1

热门文章

  1. arduino ps2摇杆程序_Arduino技巧之PS2摇杆实验
  2. 2021.7.15 jzoj题解与反思
  3. kss admin index.php,XCTF Final 2018 Web Writeup (Bestphp与PUBG详解)
  4. langtj牌子的机械键盘关闭闪光灯
  5. 当我闲困的时候,我在想些什么
  6. Android 多语言支持
  7. == 和 === 有什么区别?
  8. 疫情来袭,遵义微红科技微商下单系统助力企业转型微商!
  9. 【HiFlow】腾讯云场景连接器
  10. 【微电网优化】基于matlab粒子群算法求解综合能源系统优化问题【含Matlab源码 1969期】