简述cookie和session的区别-session和cookie多大_第1页
简述cookie和session的区别-session和cookie多大_第2页
简述cookie和session的区别-session和cookie多大_第3页
简述cookie和session的区别-session和cookie多大_第4页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本文格式为word版,下载可任意编辑简述cookie和session的区别|session和cookie多大 在学习计算机专业的时候,我们会遇到一些课程学问的问题,那么你知道cookie和session的区分?下面是我为你整理的简述cookie和session的区分,供大家阅览! 简述cookie与session的区分 cookie介绍 cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过扫瞄器恳求页面时,它同时会发送 cookie。通过 php,您能够创建并取回 cookie 的值。 1、设置cookie php用setcookie函数来设置co

2、okie。 setcookie函数定义了一个cookie,并且把它附加在http头的后面,setcookie函数的原型如下: int setcookie(string name, string value, int expire, string path, string domain, int secure); 参数说明:cookie名称,cookie值,过期时间(int),有效路径,有限域名,https传递才有效 留意:当前设置的cookie不是马上生效的,而是要等到下一个页面时才能看到.这是由于在设置的这个页面里cookie由服务器传递给客户扫瞄器,在下一个页面扫瞄器才能把cookie从客

3、户的机器里取出传回服务器的缘由。 使用例子: 一般使用: setcookie(name,php); 带失效时间的: setcookie(name,php,time()+24*60*60);/1day cookie是面对路径的 ,默认存储在当前文件下,假如没有设置路径,不同文件下的cookie默认保存在不同文件夹下,如图:默认保存在mytest文件夹下 2、接收和处理cookie 用户端与服务端的web通信协议是http。而php通过http取得用户数据惯用的三种方法分别是:post方法、get方法还有cookie。而php默认传递方法正是cookie,也是最佳方法。 比如设置一个名为mycoo

4、kier的cookie,php会自动从web服务器接收的http头里把它分析出来,并形成一个与一般变量一样的变量,名为$mycookie,这个变量的值就是cookie的值 3,删除cookie 要删除一个已经存在的cookie,有两个方法: 一是调用只带有name参数的setcookie,那么名为这个name的cookie将被从关系户机上删掉;例如:setcookie(name,); 另一个方法是设置cookie的失效时间为time()或time()-1,那么这个cookie在这个页面的扫瞄完之后就被删除了(其实是失效了)。 例如:setcookie(name,php淮北,time()-24*

5、60*60); 要留意的是,当一个cookie被删除时,它的值在当前页在仍旧有效的。 使用cookie的留意事项: 首先是必需在html文件的内容输出之前设置(cookie是http协议头的一部分,用于扫瞄器和服务器之间传递信息,所以必需在任何属于html文件本身的内容输出之前调用cookie函数。 在php页面可以先使用 ob_start();/开启 code. ob_end_flush(); /刷新缓存 可以防止header提示错误); 不同的扫瞄器对cookie的处理机制不一样 cookie限制是在客户端的。一个扫瞄器能创建的cookie数量最多为30个,并且每个不能超过4kb,每个we

6、b站点能设置的cookie总数不能超过20个。 当前设置的cookie不是马上生效的,而是要等到下一个页面时才能看到 session介绍 session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息,每一个网站访客都会被安排给一个唯一的标志符,即会话id,它的存放形式无非两种:要么经过url传递,要么保存在客户端的cookies里.当然,你也可以将session保存到数据库里,这样会更平安,但效率方面会有所下降.url方式传递平安性确定太差,php的会话机制是通过设置cookie,在cookie中保存会话id(session id),在服务器端会生

7、成session文件,与用户进行关联,web应用程序存储与这些session相关的数据,并在各页面间进行传递. php相关函数 在php中有关session的函数比较多,不过我们最常用到的也就这么几个函数: session_start():启用session机制,在需要用到session的程序文件的最开头调用它. session_register():注册session变量 session_unregister(): 删除session变量(一个一个删除) session_is_registered(): 推断session变量是否注册 session_distroy(): 销毁全部sessi

8、on变量(全部session变量销毁,包括文件) 需要留意下面几个方面: 1.函数session_start()必需在程序最开头执行,在其前面不能有任何输出内容,否则 就会消失"warning:cannot send session cookie - headers already sent类似这样的警告信息. 2.函数session_register()用于注册要保存在session中的相关变量,其用法如下: ?php $val = session value; session_register(val); ? val即为要注册的session变量名,在注册时肯定不要加上$符号,只

9、写其变量名称即可. 3.函数session_unregister()与上面函数用法完全相同,但功能相反,上面函数是注册 session变量,而其则是删除指定的session变量. 4.函数session_is_registered()用于推断session变量是否注册. 5.函数session_destroy()主要用于在系统注销和退出时,销毁全部的session变量,它没有参数,直接调用即可。 session与php.ini的关系配置 1,session.save_handler = file 用于读取/回写session数据的方式,默认是files。它会让php的session管理函数使用

10、指定的文本文件存储session数据 2,session.save_path = "/xammp/temp/' 指定保存session文件的名目,可以指定到别的名目,但是指定名目必需要有httpd守护进程属主(比如apache或等)写权限,否则无法回存session数据。它还可以写成这样session.save_path = "n;/path' 其中n是整数。这样使得不是全部的session文件都保存在同一个名目中,而是分散在不同名目。这对于服务器处理大量session文件是很有关心的。(注:名目需要自己手工创建) 3,session.auto_start

11、= 0 假如启用该选项,用户的每次恳求都会初始化session。不推举使用,最好通过session_start()显示地初始化session。 上图:左侧是保存在xammp/tmp/下的session文件,内容是php序列化的格式 右侧:第一行是echo serialize($_sessionname);/序列化 其次行是打印session值 *其中文件名是session-name,内容是php序列化的格式 cookie与session的区分和关系 存储位置: session存储在服务器位置上,可以通过php.ini里面配置session相关配置 cookie存储在客户端上的上(其实可以分两种

12、: 1,长久性cookie,设置了cookie的时间,以文件方式存在硬盘上, 2,会话cookie,没有设置cookie时间,cookie的生命周期也就是关闭扫瞄器前就消逝,一般不会保存在硬盘,而是保存在内存上) cookie和session的关系 从上面的图可以看到: cookie通过http报头发送: cookie name=php%bb%b4%b1%b1; phpsessid=cpt2ah3pi4cu7lo69nfbfllbo7 其中phpsessid就是关联服务器session的重要参数 再看session文件:sess_cpt2ah3pi4cu7lo69nfbfllbo7 sessi

13、on_id的生成格式就是:sess_加上一串phpsessid的值 我们可以这样理解: 当程序需要为某个客户端的恳求创建一个session时,服务器首先检查这个客户端的恳求里是否已包含了一个session标识 (称为session id),假如已包含则说明以前已经为此客户端创建过session,服务器就根据session id把这个session检索出来 使用(检索不到,会新建一个),假如客户端恳求不包含session id,则为此客户端创建一个session并且生成一个与此session相 关联的session id,session id的值应当是一个既不会重复,又不简单被找到规律以仿造的字

14、符串,这个session id将被在本次响应 中返回给客户端保存。保存这个session id的方式可以采纳cookie,这样在交互过程中扫瞄器可以自动的根据规章把这个标识发送给 服务器。一般这个cookie的名字都是类似于seeesionid php.ini里面关于session和cookie有关的配置 1,session.use_cookie = 1 是否采纳cookie方法传递session id值。默认是1,表示启用。 2, = phpsessid 不管是cookie传递sessioin_id,还是get方法传递session_id,都需要使用键值。他们的格式分

15、别是cookie: sess_name=session_id;和/path.php?sess_name=session_id,其中sess_name就是由这里指定的。 3,session.use_only_cookies = 0 表示只使用cookie 的方法传递session id。我们说过,传递cookie的方法,除了cookie,还有get方法,get方法是担心全的方法。在用户端禁用了cookie的时候,会采纳get方法传递session_id,可以通过这个设置尽用get方法传递session_id。 4,session.cookie_lifetime = 0, session.cook

16、ie_path = / 以及session.cookie_domain = 假如使用cookie方法传递session_id的话,这里分别指定了cookie有效域、名目和时间。分别对应setcookie()函数的形参$expire、$path和$domain。其中cookie_lifetime=0表示直到关闭扫瞄器才删除cookie。还可以使用session_set_cookie_params()函数修改这些值。 5,session_name(string $name) 猎取或更新session_name。假如传了name,则表示不使用默认的名称phpsessid(由)

17、指定,否则猎取当前session_name。留意:假如设置session_name,则必需在session_start()之前调用才生效。 6,session_id(string $id) 与session_name()类似,但它是读取或者设置session_id的方法。同样,设置session_id的话,必需在session_start()之前调用才有效。 7,session_set_cookie_params()和session_get_cookie_params() 通过session_set_cookie_params()可以重新设定session.cookie_lifetime, session.cookie_path以及session.cookie_domain这三个php.ini设置。而s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论