Cookie&Session随记

session是web开发里一个重要的概念,在大多数web应用里session都是被当做现成的东西,拿来就直接用,但是一些复杂的web应用里能拿来用的session已经满足不了实际的需求,当碰到这样的情况时候我们需要更加深入的理解session的机制,本文将梳理下session的相关知识,为设计可替代web容器自带的session机制打个基础。

cookie

cookie是服务器发送给浏览器并在用户浏览时存储在用户计算机上的一小部分数据。使用HTTP头在浏览器和服务器之间生成和共享Cookie。
ps:指某些网站为了辨别用户身份而存储在用户本地终端上的数据

它允许服务器存储和检索来自客户端的数据,它存储在客户端的文件中,并且可以存储的最大的cookie大小在任何浏览器中都被限制为4K。

分类

Cookie总是保存在客户端中,按照客户端中的存储位置,可分为内存Cookie和硬盘Cookie

顾名思义内存Cookie有浏览器维护,保存在内存中,浏览器关闭后消失,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手动清理,或是到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。

用途

因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么,所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

Cookie另一个典型的应用是当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

Cookie的缺陷
  1. 根据上面所说的,Cookie会被附加在每一个HTTP请求中,由于HTTP请求中的Cookie是明文传递的,所以安全性成问题,除非使用HTTPS
  2. Cookie的大小限制在4K左右,对于复杂的存储需求来是不够用的。
Session

当任何用户对web应用程序进行任何更改(如登录或注销)时,服务器都不知道系统上的人是谁。为了解决这个问题,PHPsession将介绍哪些存储用户信息可用于多个网页。
session变量包含有关单个用户的信息,并且在所有的地方都可以访问。

PHP代码以特定会话的散列形式生成唯一标识,该标识是32个十六进制数字的随机字符串,如pvc19hdj5961abfk9lfg4b9l40c被称为PHPsessionID。

http request

Cookie: PHPSESSID=pvc19hdj5961abfk9lfg4b9l40c;......
centos6.8 中:session存储地址
/var/lib/php/session/sess_pvc19hdj5961abfk9lfg4b9l40c

session文件

sessionCline.png

Http请求
requestCookie.png

根据上面的一串东西 我们好像发现了什么了不得的东西(牙慧-_-!)

SESSID或COOKIE是其用于识别已经登录到网站的用户的唯一编号。SESSID存储在服务器内部,它在该用户的访问(会话)期间分配给特定用户。该SESSID可被存储为一个cookie,表格字段,或URL。

Session **Cookies
数据存储在服务器上 数据存储在浏览器中
会话数据更安全,因为它们从不在每个HTTPRequest上运行。 使用每个HTTP请求。
可以存储对象(存储大量数据) 可以存储字符串类型(最大文件大小为4kb)
Session Cannot be used for Future Reference Cookies are mostly used for future reference

每个客户端请求服务器时,服务器生成 session 时,都会给这个 session 分配一个唯一 id, 用来标示这个 session, 存到文件时,文件名就是这个 id,
然后再把这个 id 返回到客户端,并告诉客户端保存到 cookie 中.

header 响应
set-cookie:sessionid=23333333333

如何设置cookie
PHP透明地支持HTTP.cookie,可以使用封装好地PHP函数setcookie()或setrawcookie()函数来设置cookie。cookie是HTTP标头地一部分,因此setcookie()函数必须在其它信息被输入到浏览器前调用,和header()函数地限制类似。如果php.ini配置文件设置variables_order中包括C,则任何从客户端发送地cookie都会被自动包括进$_COOKIE自动全局数组。

这写概念基本都是w3c和上面的,详情请转至~.~ 哦还有会话劫持相关的内容 详情请点击http://php.net/manual/en/session.configuration.php#ini.session.use-only-cookies

session共享方案
PHP使用redis存储session来达到session共享的目的。
。。。。。。。。。。。。。。。。。

session.save_handler = Redis
//Redis不需要密码验证
session.save_path = “tcp://127.0.0.1:6379”
session.save_path = “tcp://127.0.0.1:6379?auth=password”

时:2018年4月17日

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355

推荐阅读更多精彩内容