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. python摸爬滚打之day15----初识类

    1.面向对象和面向过程 面向过程: 以事物的流程为核心.  优点: 负责的事物流程化, 编写简单; 缺点: 可拓展性差. 面向对象: 一切以对象为核心. 对象里封装着一切. 优点: 可拓展性强; 缺点 ...

  2. Docker入门4------Dockerfile

    转自:https://www.cnblogs.com/jsonhc/p/7766841.html https://www.cnblogs.com/jsonhc/p/7767669.html Docke ...

  3. 各操作系统安装redis

    mac系统安装redis 注:Mac操作亲测可用,其他系统的安装均从菜鸟教程转载而来,未测试是否可用 一.下载 打开官网:https://redis.io/ Download---Stable---D ...

  4. CoreData 执行executefetchrequest卡死解决办法

    在大量使用GCD和block以后发现程序会卡死在executefetchrequest执行. 反复测试无果.添加锁也无效.想来想去没发现问题. 容忍了就当人品问题.2天以后实在忍无可忍. 替换perf ...

  5. Redis入门到高可用(十八)—— 主从复制

    一.单机有什么问题 1.机器故障 2.容量瓶颈 3.QPS瓶颈 二.主从复制 1.数据副本(高可用.分布式基础) 2.拓展读性能(读写分离)  简单总结: 三.主从复制配置 四.主从复制配置-实验演示 ...

  6. 本地node启动服务步骤

    启动node服务: 1.git bash here (node server-run.js) 2.如果第一次启动node服务,要根据提示装依赖文件npm install 依赖文件名 3.启动成功提示: ...

  7. Kafka笔记2(安装)

    1.安装java 2.安装zookeeper 3.安装kafka Broker 测试:发布消息 测试:读取消息 4,broker配置 常规配置: broker.id: 默认0  每个broker都需要 ...

  8. Exercise about Shape

    #include <iostream> using namespace std; class point { int x; int y; public : point () { x=y=; ...

  9. 小程序canvas生成海报保存至手机相册

    小程序canvas画图保存至手机相册 (1)可直接展示生成的海报 .因手机分辨率不同可能导致生成的海报会有细微差别,这里隐藏canvas海报,页面正常设置海报样式保存时保存隐藏的canvas海报 (2 ...

  10. 关于table的td和ul元素li隔行变色的功能实现

    table元素的td和ul元素li隔行变色的功能实现 利用css控制二者的样式轻松实现隔行换色: 例如:table的css样式控制: table tr td{   background-color:颜 ...