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. etcd集群的搭建

    由于最近在学习kubernetes,etcd作为kubernetes集群的主数据库,必须先启动. etcds实例名称 IP地址 Hostname etcd 1 192.168.142.161 kube ...

  2. LaTeX大于小于号

    发现大部分人只回答大于等于号.小于等于号的写法,而没有说大于.小于号的分别写法. 大于号:\textgreater 小于号: \textless 下面的后面要加空格,否则会识别错误 大于等于:\geq ...

  3. 安装Linux系统

    一.环境准备 1.一个VM虚拟机镜像,一个CentOS-7镜像(注:CentOS-7和CentOS-6在命令上有很大的差别,这里选择CentOS-7版本) 二.开始安装 1.新建一个虚拟机,选择自定义 ...

  4. 初学Vue 遇到Module not found:Error:Can`t resolve 'less-loader' 问题

    学习vue时,导入一个子组件时遇到Module not found:Error:Can`t resolve 'less-loader' 问题,实际上时在子组件中的样式里加了这么个代码 <styl ...

  5. oracle 新建用户后赋予的权限语句

    grant create session,resource to itsys; grant create table to itsys;grant resource to itsys;grant cr ...

  6. autoMapper的介绍

    .NET的DTO映射工具AutoMapper 分类: 多层架构 DTO .NET2012-08-11 10:27 2466人阅读 评论(0) 收藏 举报 原文:https://github.com/A ...

  7. Git 在 windows 上面的安装

    参考博客: https://blog.csdn.net/xiezhongyuan07/article/details/79411299 将该作者的文章搬过来, 大家可以直接看上面的原文章. 下面是拷贝 ...

  8. Java 中的E,K,V,T,U,S

    Java泛型中的标记符含义:  E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类) K - Key(键) V - Value(值) N - Number ...

  9. 安装OpenResty开发环境

    OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web ...

  10. u-boot2010.06移植阶段三--norflash驱动

    2011-03-20 23:06:24 学习笔记: 效果图: 参考步骤: 一,把smdk2410 # 改成apple2440 #  1,在board/samsung/apple2440/apple24 ...