PHP5应用笔记之Cookie实用攻略(上)

2016-01-29 12:55 9 1 收藏

PHP5应用笔记之Cookie实用攻略(上),PHP5应用笔记之Cookie实用攻略(上)

【 tulaoshi.com - PHP 】

最近发现写博客也是提高javascript:;" onClick="javascript:tagshow(event, '%D1%A7%CF%B0');" target="_self">学习效率的有效途径之一。好记性不如烂笔头,归纳总结时,你会发现总有一些东西你认为很熟了,它却在细微处讽刺你的错误。我学习COOKIE与SESSION时,几乎把社区所有相关的帖子都下载了,研究过后,总结了这么点东西,权做备案,日后需要再慢慢查阅!如果有人觉得这篇博客里的内容似曾相识也不要奇怪,这只是笔记,没有侵犯版权的意思。欢迎大家来指点错误,我们一起来完善这个课题。

1、HTTP协议本身是无状态的
   我们上网都要靠HTTP协议传递信息。比如我们在浏览器里键入:www.bokee.com这个网址并回车,你会发现网址会变成:http://www.bokee.com,其原因就是浏览的网页是基于http协议的。http协议无法记录用户经常上哪些网站,有什么爱好,也无法记录用户的ID帐号和密码。这就是所谓的HTTP协议无状态。HTTP协议本身是无状态的,这与HTTP协议本来的目的是相符的,客户端只需要简单的向服务器请求下载某些文件,无论是客户端还是服务器都没有必要纪录彼此过去的行为,每一次请求之间都是独立的,好比一个顾客和一个自动售货机或者一个普通的(非会员制)大卖场之间的关系一样,你认得它们,它们则肯定认不得你。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

2、怎样理解cookie和session
   由于cookie和session关系密切,这里我们一并介绍。
   打个比方:在河南时,我常到一家熟食店买馋嘴鸭,该店老板为了促进销售,特发布“每购满10只即可免费赠送一只”的优惠措施。除了家里有什么红白喜事要飨客之外,应该不会有人一次性购买10只烤鸭吧?所以老板得想个法子来记录顾客的消费数量,这里总共有三种方案:

   Ⅰ、老板记住每一个顾客的消费数量,等到顾客消费满10只的时候自动奉送一只。这好比HTTP协议本身是有状态的,可以记住顾客的活动行为。但遗憾的是,出于种种考虑http协议本身是不能有状态的,老板自个也没有这么超常的记忆力,故这种方案行不通!

   Ⅱ、老板发给顾客一张积分卡,上面记录着消费的数量,一般还有个有效期限。每次买烤鸭时,如果顾客出示这张卡片,老板就知道这位顾客曾经光顾过小店。这种做法就是在客户端保持状态,好比是cookie技术。打开(windows系统)C:Documents and Settings用户名Cookies,你会发现一些*.txt格式的小文件,这就是你浏览某些网站,它们发给你的“积分卡”(cookies)。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

   Ⅲ、老板发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次买烤鸭时,如果顾客出示该卡片,则老板搬出店里的划名册,找到你的卡号并加1个积分。这种做法就是在服务器端保持状态。


好比是session技术。cookie和session最大的区别在于: cookie是把积分卡发给顾客,上面记录了顾客所有的消费信息。Session则是把只有卡号(session id)的积分卡发给顾客,自家记录了顾客所有的消费信息。Cookie是保存在客户端的;session是保存在服务器端,而session id则是保存在客户端,通常也是一个cookie小文件,由于这个小文件除了session id(好比卡号)外什么也没有,因此比cookie安全多了。

3、cookie和session有什么用
   常见的用法,比如在有些网站下载东西需要会员先登陆。http协议本身是无状态的,无法得知顾客是否已经登陆,怎么办呢?cookie和session就可以知道。再比如网上购物,购物车怎么知道顾客挑选过哪些商品呢?cookie和session也可以记录。总而言之,cookie和session就是能够记录顾客状态的技术,尽管二者属于不同的技术,但只要cookie能做到的,session也能做到!

COOKIE攻略

Cookie技术是一个非常有争议的技术,自经诞生它就成了广大网络用户和Web开发人员的一个争论焦点。有一些网络用户,甚至包括一些资深的Web专家也对它的产生和推广感到不满,这倒不是因为Cookie技术的功能太弱或别的技术性能上的原因,而仅仅是因为他们觉得Cookie的使用,对网络用户的隐私构成了危害。因为Cookie是由Web服务器保存在用户浏览器上的小文本文件,它包含有关用户的信息(如身份识别号码、密码、用户在Web站点上购物的方式或用户访问该站点的次数)。

    那么Cookie技术究竟怎样呢?是否真的给网络用户带来了个人隐私的危害呢?还是让我们看了下面的内容,再做回答吧。
      在WEB技术发展史上,Cookie技术的出现是一个重大的变革。最先是Netscape在它的Netscape Navigator 浏览器中引入了Cookie技术,从那时起,World Wide Web 协会就开始支持Cookie标准。以后又经过微软的大力推广(因为微软的IIS Web服务器所采用的ASP技

来源:http://www.tulaoshi.com/n/20160129/1488118.html

延伸阅读
标签: Web开发
* 本文是对《Classes and Objects in PHP5》系列文章的补充和修正,介绍了PHP5对象体系的总体框架,但有些特性没有具体介绍。强烈建议在读过《Classes and Objects in PHP5》后阅读本文。 PHP5推出的对象体系相信是大家最为期待的。PHP5借鉴了Java2的对象模型,提供了较为强大的面向对象编程支持,使用PHP来实现OO将变得轻松和自然。 ...
羊毛毡也可以做笔记本套?当然喽,除了水果蔬菜动物娃娃什么的,羊毛毡总算能派上正经用场。大红和灰黑的撞色,粗糙的保护套和精致光滑的笔记本形成了鲜明的对比。做工不复杂,成品简单极致。一起来看看羊毛毡做笔记本电脑套的制作方法吧,或许你的IPad也需要一个新的保护套了~ 材料: *厚羊...
标签: PHP
RT,原来可以用于访问2000的语句用在2003上出错了 以下是原来用于访问ACCESS 2000的语句 <?php $db="xxx.mdb"; $conn=new COM('ADODB.Connection') or die('can not start Active X Data Objects'); $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db"); ? [ 本帖最后由 dragon005 于 2006-10-6 09:04...
标签: Web开发
新的对象模型 PHP中的对象处理部分已完全重写,具有更佳的性能和更多的功能。在先前的PHP版本中,对象被当做原始的简单类型 (如integer和string)来处理,这种方法的缺点是当变量被赋值或作为参数传递时,得到的是对象拷贝。而在新版本中, 对象是通过句柄来引用的,而不是通过对象的值(句柄想象为对象的标识符)。 很多PHP程序员可能...
标签: Web开发
一.介绍 现在在开发WEB应用的时候,比较流行的一种做法就是使用“MVC”结构,使用如此方式去开发WEB应用程序,逻辑性强、简浩明了,使程序设计起来更加方便,快捷。何为“MVC”呢?简单的来说,它就是“模型(Model)”、“视图(View)”及“控制器(Controller)”的结合体,也就是所有的“三层”抽象结构,当然这里所说的“MVC”是针对W...

经验教程

634

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部