1.cookie是什么?

cookie指某些站点为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

通俗来理解就是,你去一个专卖店或者超市买东西,然后店里给你办一张会员卡,以后你的身份和购买信息都存在这个卡里。而这个卡放你身上。之后每次去买东西的时候仅仅须要刷卡就能够了。不用再登记或者记录其它的信息。

然后将这段话映射了web上,超市结账台就是server端,而你自己就是client,你身上所带的卡也就是存在client中的cookie文件。里面记录了你的帐号password等信息。

只是要注意的一点,cookie在第二次使用的时候才可以生效。也就是说你在超市第一次买东西。人家会给你办卡,你以后来买就行刷卡了。可是第一次买之前,超市并没有你的不论什么信息,所以你第一次根本就没有卡。

站点也一样,第一次登录某站点,当然要输入帐号password等信息,然后才干生成cookie存在本地,以便下一次使用。

同一时候,cookie也有自己的有效期,过了期以后就失效了。本地的cookie文件会被自己主动删除。须要再次登录,输入帐号password,然后生成新的cookie。这样做的主要目的还是为了安全考虑。

2.cookie机制图解。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3pxbmxz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

3.cookie用法。

(1)设置cookie

bool setcookie ( string $name,$value,$expire,$path,$domain,$secure,$httponly  

比如:

setcookie("username","user",0,"/");
setcookie("username","user",time()+60*60,"/");

每一个參数的使用方法就不作说明了。

这里重点解析一下上面两中设置cookie方式中的时间和路径。

第一个其中的时间放了个0进去。难道代表生存时间为0.明显不可能。它有着特殊的意义,表示cookie的有效期随着浏览器的关闭而结束。

他们的路径中都放了个"/"。

这个就代表在这个域名下的全部contentpath都能够訪问cookie,也就是说这个站点下的全部页面都能够追踪这个cookie。

(2)删除cookie

setcookie("username","",time()-3600,"/");

和设置cookie一个东西,就是没有了cookie的值,时间比当前时间还早。然后不就过期了。

(3)查看cookie

print_r($_COOKIE);

这家伙大家肯定都懂。就当浪费一下眼神。

----------------------------------------------------------------------------------

-----------------------------我是切割线-------------------------------------------

----------------------------------------------------------------------------------

1.session是什么?

Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注冊进入系统到注销退出系统之间所经过的时间。

session的工作原理(摘于百度)
(1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。

(2)首先使用session_start()函数,PHP从session仓库中载入已经存储的session变量。
(3)当运行PHP脚本时。通过使用session_register()函数注冊session变量。

(4)当PHP脚本运行结束时。未被销毁的session变量会被自己主动保存在本地一定路径下的session库中,这个路径能够通过php.ini文件里的session.save_path指定。下次浏览网页时能够载入使用。

事实上通俗来讲的话,就是你去超市买东西。办的会员卡记录了你的信息。可是会员卡并非保存在你这里,而是已数据的方式存在超市的系统中,一旦注冊之后能够直接使用。你须要的时候,直接能够使用。可是你一旦离开超市,那个会员卡也就失去了效用直到你的下一次购买。同一时候。这个会员卡的唯一标识也就是你自己,其它不论什么人都没有办法使用你的会员卡。直接对号入座就非常好理解了。

session和cookie的一大不同点就是,session注冊之后直接使用,也就是第一次购买就能够使用,而cookie是经过第一次购买之后才将信息存入会员卡。然后第二次開始使用。

2.session机制图解。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3pxbmxz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

3.session用法。

(1)设置session

session_start();
$_SESSION['username']="user";

每一次在使用session之前都须要进行开启session,就当是通常进门都先须要开门一样。而在设置session时和对变量进行赋值没有多大的差别,事实上$_SESSION本身就是一个变量。

(2)删除session

这个相对步骤就多了点,而不是cookie里面一句话搞定。

//开启session
session_start(); //注销session
session_unset(); //销毁session
session_destroy(); //同一时候销毁本地cookie中的sessionid
setcookie(session_name(),"",time()-3600,"/");

(3)查看session

print_r($_SESSION);

1.cookie与session优缺点。

cookie本身是存放在client中。仅占用几kb的内存大小。每次登录站点的时候都会带上本地的cookie进行验证,省去了麻烦的反复输入。可是安全性不是非常高,毕竟是存放在本地的文件。尽管都是进行加密了的,一旦电脑数据被盗取,cookie就非常有可能会被获取。

session存放在server中,占中内存虽小,可是用户基数够大的情况下,会对server造成非常大的负荷。可是,数据放在server上,总归风险减少了很多。

虽说没有不透风的墙,只是风也是能够非常小非常小的。这比喻。。

有同学可能疑问,session使用时。会有sessionid存在本地,一旦获取是否能登录。答案当然是否定的,由于每次的id都是不一样的。

浅析PHP中cookie与session技术的更多相关文章

  1. Http中Cookie和Session介绍

    先介绍下B/S系统的工作的完整过程.首先客户端的浏览器发出请求,服务端的webserver接受到请求后,调用相关请求的页面进行处理,处理完后将结果发送给客户端的浏览器进行显示.只能是浏览器向webse ...

  2. 理解cookie和session技术

    一.HTTP协议的无状态性 WEB应用程序使用的是HTTP协议传输数据的,HTTP协议是一个无状态的协议,这次数据传输完毕,客户端会和服务端断开连接,再次传输数据就需要重新建立新的连接,这也就无法会话 ...

  3. thinkphp中cookie和session中操作数组的方法

    thinkphp中cookie和session中操作数组的方法 一.ThinkPHP模板中如何操作session,以及如果session中保存的是数组的情况 在ThinkPHP的模板中操作sessio ...

  4. PHP中Cookie与Session的异同以及使用

    Cookie与Session的异同: 一.cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Mana ...

  5. 浅析软件工程中的UML建模技术

    一.基本信息 标题:浅析软件工程中的UML建模技术 时间:2018 出版源:电子世界 领域分类:软件工程:UML建模技术:需求分析 二.研究背景 问题定义:软件工程中UML建模技术的研究 难点:明确软 ...

  6. flask中cookie和session介绍

    flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.co ...

  7. 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

    浅谈JS中的!=.== .!==.===的用法和区别   var num = 1;     var str = '1';     var test = 1;     test == num  //tr ...

  8. 【转】浅析Linux中的零拷贝技术

    本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景.为了迅速建立起零拷贝的概念,我们拿一个常用的场景进行引入: 引文## 在写一个服务端程序时(Web Server或者文件服务器),文件 ...

  9. flask中cookie和session设置

    flask中cookie和session介绍   一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户. ...

随机推荐

  1. WebForm--j简单控件、简单的登录(怎么链接数据库)

    一.简单控件 1.label:边框(边框的颜色.样式.粗细)  是专门显示文字的,   被编译后是    <span id="Label1">Label</spa ...

  2. 洛谷P2607 [ZJOI2008]骑士(树形dp)

    题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬. 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里, ...

  3. (转载)Activity-数据状态的保存

    由于手机是便捷式移动设备,掌握在用户的手中,它的展示方向我们是无法预知的,具有不确定性.平时我们拿着手机多数为竖屏,但有时候我们感觉累了也会躺着去使用手机,那么这时手机屏幕的展示方向可能已经被用户切换 ...

  4. hdu 2768 Cat vs. Dog 最大独立集 巧妙的建图

    题目分析: 一个人要不是爱狗讨厌猫的人,要不就是爱猫讨厌狗的人.一个人喜欢的动物如果离开,那么他也将离开.问最多留下多少人. 思路: 爱猫和爱狗的人是两个独立的集合.若两个人喜欢和讨厌的动物是一样的, ...

  5. HighCharts 图表插件 自定义绑定 时间轴数据

    HighCharts 图表插件 自定义绑定 时间轴数据,解决时间轴自动显示数据与实际绑定数据时间不对应问题! 可能要用到的源码片段:http://code.662p.com/list/14_1.htm ...

  6. 杭电1159 Common Subsequence【最长公共子序列】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 解题思路:任意先给出两个字符串 abcfbc abfcab,用dp[i][j]来记录当前最长的子 ...

  7. mindmanager 2018 中文破解版_注册码_免激活

    MindManager 2018是一个可视化的工具,可以用在脑力风暴(brainstorm)和计划(plan)当中.为商务人士提供更有效的.电子化手段捕捉.组织和联系信息(information)和想 ...

  8. SPOJ-CRAN02 - Roommate Agreement(前缀和)

    CRAN02 - Roommate Agreement Leonard was always sickened by how Sheldon considered himself better tha ...

  9. NOIP 膜你题 DAY2

    NOIp膜你题   Day2 duliu 出题人:ZAY     题解 这就是一道组合数问题鸭!!!  可是泥为什么没有推出式子!! 首先我们知道的是 m 盆花都要摆上,然后他们的顺序不定(主人公忘记 ...

  10. js进度条插件pace.js

    主要用到themes文件夹和pace.js文件