cookie是面试中经常会问到的一个问题,但是就我的项目实践来看,我用到的次数极少。有时候用到也不是为了存储用户名密码,只是存储一些需要记住的状态。可能和我的经验尚浅,涉足的项目不算多有关。这里简单做几点总结。

1.cookie由来
1)session和cookie都是会话跟踪技术,都是用来记录保存客户端跟服务器之间通信时需要用到的一些数据。
2)session对象存放在服务器内存里
3)cookie存放在客户端本地硬盘上
4)客户端每次访问服务器都会携带该服务器发送到本地的cookie文件
5)当使用session保存客户端信息时,cookie文件不再需要保存大量客户端信息,只需要简单记录一个session的ID号
6)当cookie文件丢失,服务器便无法辨别客户端的身份,只能假定客户端是第一次访问服务器,所以会要求客户端进行登陆操作。
7)服务器默认设定,当客户端30分不再与服务器产生交互,便认为会话过期,session对象会被销毁。此时再请求服务器,cookie中记录的sessionID号已经毫无意义。 session对象只能重新建立,用户也必须重新进行登陆。
8)当浏览器禁用掉cookie功能,服务器便彻底无法辨别客户端的身份,session功能就会失效,你就可能无法正常的访问网站。

2.cookie组成
cookie由 名/值 对形式的文本组成: name=value
完整格式为 name=value;[expires=date];[path=path];[domain=somewhere.com];[secure]
[ ]里面的属性和值是可选,name=value是必选。

expires=date失效时间;path=path 表示cookie所在的根目录;domain 表示cookie所在的域,默认为请求的地址;secure 安全设置,只能保证cookie与web服务器之间的数据传输过程加密,保存在本地的cookie不加密。

3.cookie交互原理

原理:不想保存在中央数据库的细节信息。设计一个站点,依照用户习惯登录的模式,cookie记录每个用户的习惯,并保存在用户的计算机上,而自己的数据库空间可以留给更有意义的数据。

4.cookie的限制
chrome和Safari没有对cookie的个数做限制,一般浏览器限制同一域名数量为50个。
cookie的文件大小一般为4kb(同一域名)。

5.禁止cookie
如果浏览器完全禁止cookie的话,大多数网站的功能无法正常使用。

6.cookie与存储
在本地客户端的磁盘上以很小的文件形式保存数据。
(HTTPCookie)最初是客户端与服务器进行会话使用的。
HTTPCookie要求服务器对任意HTTP请求发送set-cookie,cookie的处理原则是,需要在服务器环境下进行。现在大部分浏览器在客户端也能实现cookie的生成和获取(谷歌除外)。

7.cookie(拓展)
(1)cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的 多个网页,但不能跨越多个域名使用。不同的浏览器对cookie的实现也不一样,但其性质是相同的。
(2)cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。

万年不变话题cookie,简单总结的更多相关文章

  1. Session会话与Cookie简单说明

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  2. cookie 简单用法

    cookie 简单用法 //当前登录人的组织Id HttpCookie SingleValueCookie = new HttpCookie("DepartmentId", &qu ...

  3. Cookie简单实例

    Cookie简单实例 1.创建CookieServlet package com.servlet.study; import java.io.IOException; import java.io.P ...

  4. Java用Cookie简单限制点赞次数

    楼主最近在搞一个当下比较流行的点赞功能,这个功能也是让程序员又爱又恨啊 说起爱,点赞是个社会化的动作,全民都在为美好的事情,行为,动作,点赞. 说起恨,你很难在用户没有登录的情况下限制恶意点赞的机器人 ...

  5. Cookie 简单设置使用

    cookie的理解可以为,存放在用户浏览器上的一个文件,里面是键值对数据,用于跟服务端通讯.前端可以通过jquery cookie插件设置和读取,后端直接设置 1.获取Cookie: 1 2 3 4 ...

  6. Cookie简单介绍

    Cookie 饼干. 其实是一份小数据, 是服务器给客户端,并且存储在客户端上的一份小数据 应用场景 自动登录.浏览记录.购物车. 为什么要有这个Cookie http的请求是无状态. 客户端与服务器 ...

  7. python 处理cookie简单很多啊 httpclient版本是4.3.3

    模拟登录流程: 1 请求host_url 2 从host_url中解析出 隐藏表单 的值 添加到POST_DATA中 3 添加账户,密码到POST_DATA中 4 编码后,发送POST请求    要点 ...

  8. Cookie 简单使用记录浏览记录

    ItemsDAO.java package dao; import java.util.* ; import java.sql.* ; import util.DBHelper; import ent ...

  9. Session、Cookie简单理解

    Session: session是一种记录客户状态的机制,session是保存在服务器上的,当浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是所谓的session,当浏览器再 ...

随机推荐

  1. docker安装和基础操作

    docker安装 yum install docker 配置镜像下载加速器 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...

  2. Potatso Lite:[限免]ios 自由上网利器

      为入门用户打造的轻量级网络代理工具,支持通知中心开关.扫描二维码或手动输入代理,简洁好用.支持多种代理. Potatso Lite:appstroe 下载 重要提醒:中国区Appstroe可下载. ...

  3. 2018-2019-1 20189203《Linux内核原理与分析》第五周作业

    第一部分 课本学习 用户态.内核态和中断 1.内核态:处于高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态,对所有的指令包括特权指令都可以执行. 2.用户态:处于低的 ...

  4. MongoDB 知识点

    左边是mongodb查询语句,右边是sql语句.对照着用,挺方便. db.users.find() select * from users db.users.find({"age" ...

  5. JSONModel(I)

    JSONModel使用简介 JSONModel 只需要将你的 model 类继承自 JSONModel ,而同时 model 中的属性名又恰巧可以和 JSON 数据中的 key 名字一样的话,那么非常 ...

  6. 在 Tomcat 中自定义 404 页面(简单配置)

      打开 Tomcat 中的 web.xml,(tomcat/conf/web.xml) 添加如下代码: <error-page>  <error-code>404</e ...

  7. double保留两位小数

    public static String format(double dValue, int lScale) { // ////负数,则装化为正数后进行四舍五入 boolean bFlag = fal ...

  8. Docker Macvlan 介绍 or 工作原理

    Docker Macvlan Network Macvlan Network:属于Docker的网络驱动. Macvlan Network:Docker主机网卡接口逻辑上分为多个子接口,每个子接口标识 ...

  9. javascript监听按键

    document.addEventListener('keydown',test); function test(e){ var x=e.keyCode; if(x == 49){ console.l ...

  10. 从一组数找第K大元素

    最近做面试题,经常与到一个问题,如何高效的从一组数中找到第K大的元素. 其实我们最容易想到的肯定是蛮力法. 1. 我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总的时间复杂度为O(n*l ...