Cookie的使用

原创 2000年09月05日 22:52:00
HTTP协议是非常强大的。不过,它有一个缺陷就是不记忆状态。这意味着,当一次HTTP会话结束后,不管是客户还是服务器,都不记忆刚刚发生的会话。这有可能导致一些麻烦,因为服务器无法知道一些重要的事情,诸如口令、发给客户的纪录等。    HTTP协议提供了一个基本方法可以让客户的机器中保存一些信息,这样,服务器就可以从中知道上一次HTTP会话的的情况,这就是所谓的Cookie。    Cookie实际是一个字符串,它的格式是 CookieName=CookieValue。Cookie中不应该有分号或逗号。客户可以拒绝Cookie,所以任何一个Web应用程序不能认为客户的机器肯定有Cookie。察看Cookie的情况可以在Windows/Cookies中找。    在Delphi中管理Cookie是一件非常容易的事。THTTPRequest和THTTPResponse都封装了用来处理Cookie的特性和方法,允许您控制怎样读写Cookie。    要设置Cookie的内容,您可以调用TWebResponse的SetCookieField的方法。这个方法需要传递一个TStrings对象作为Cookie的内容以及这个Cookie的限制条件。SetCookieField()方法是这样声明的:    procedure SetCookieField(Values:TStrings;const ADomain,APath:string;AExpires:TDateTime;ASecure:Boolean);Values参数是一个TStrings对象(也可以使用TStringList对象),用于指定Cookie的实际内容。Values中可以包含多个Cookie。ADomain 参数用于限制服务器的域,Cookie只对特定域的服务器是有效的。如果这个参数为空,Cookie将被传递给任何一个服务器。一般情况下,应当把这个参数设为Web服务器的域名。APath参数用于指定一组路径,Cookie只在特定的路径下是合法的。AExpires参数用于指定Cookie在多长时间内是合法的,由于时差的原因,这个时间应当基于GMT时区。如果您想使Cookie的有效时间是10天,就应当把这个参数设为Now+10。如果要使一个Cookie无效,这个参数可以设为过去的一个时间。注意,一个Cookie无效后,就不会被传递给服务器,但并不从客户机中删除。ASecure参数是一个boolean值,如果这个参数设为True,表示Cookie只能通过HTTP或SSL传递。一般情况,这个参数设为False。    在Web服务器端,您可以通过TWebRequest的CookieFields特性访问由客户传递来的Cookie。这个特性是一个TStrings对象,每个Cookie的格式是param=value。调用TWebRequest的ExtractCookieFields()方法可以把多个Cookie分解为一个个字符串。    Cookie可以保存任何字符串所能表达的信息。Cookie的长度最多可达4KB,客户的机器最多可以保存300个Cookie.每个服务器或域的Cookie不超过20个。下面举一个例子说明Cookie的应用:var
    CookList : TStringList;
    iBZ,fcbz:integer; begin
    CookList := TStringList.Create;
    try
        CookList.Add('NSRID='+ sNSRID);
        CookList.Add('NSRMC=' + sNSRMC);
        CookList.Add('WJBM=' + sWJBM);
        CookList.Add('YHZH=' + sYHZH);
        iBZ:=0;
        fcbz:=0;
        CookList.Add('BZ=' + IntToStr(iBZ));
        CookList.Add('FCBZ=' + IntToStr(fcbz));
        Response.SetCookieField(cookList,'','',Now+10,False);
  finally
        cookList.Free;
  End;
End;//创建Cookie    iBZ:=StrToInt(Request.CookieFields.Values['BZ']);//使用Cookie

cookie简单实用的使用方法

cookie的由来:             在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,...
  • qq_35488412
  • qq_35488412
  • 2017年03月09日 16:07
  • 1738

Cookie和Session的详细使用方法

进行Web开发,熟练地使用Cookie和Session是必须的,有时间来总结一下希望对大家都有用...
  • xiaouncle
  • xiaouncle
  • 2016年07月19日 16:34
  • 5224

关于Cookie的原理、作用,区别以及使用

很多同学对cookie不太了解,我在这里为大家简单的讲解下关于cookie的一些知识,并将它的存入,读取以及删除封装成了一个函数,在最后做了一个简单的类似购物网站,将商品的信息通过cookie方式存入...
  • u014753892
  • u014753892
  • 2016年10月15日 09:35
  • 17660

前端Cookie基本使用方法

CookieCookie 历来指就着牛奶一起吃的点心。然而,在因特网内,“Cookie”这个字有了完全不同的意思。那么“Cookie”到底是什么呢?“Cookie”是小量信息,由网络服务器发送出来以存...
  • c_kite
  • c_kite
  • 2017年03月03日 20:33
  • 4239

使用 Cookie 的优点与缺点

使用 Cookie 的优点为:l         可配置到期规则 Cookie 可以在浏览器会话结束时到期,或者可以在客户端计算机上无限期存在,这取决于客户端的到期规则。 l         不需要任...
  • msonchina
  • msonchina
  • 2007年09月15日 15:06
  • 11063

利用cookie传值

一般的前台和后台交互传值很简单,我习惯了用Ajax,但是最近遇到一个问题,前端调用后台一个方法后,需要刷新整个页面,但是这时候前台和后台方法都没有走完,之前利用JQuery获取的那些值都清空了,于是就...
  • u013067402
  • u013067402
  • 2016年04月23日 17:08
  • 3781

java使用cookie和session

当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接,请求的相关数据将不再存在,这样明显有不好的地方。cookie和session解决了这一问题,客户端(一般是浏览器)与...
  • u012385190
  • u012385190
  • 2016年07月19日 17:22
  • 5587

了解 Cookie 的工作流程

【考题题干】如何发送 Cookie?下面选项中哪个是正确的? A.使用 new Cookie 语句 B.调用 response.addCookie()方法 C.使用 Cookie 的 setMa...
  • sanqima
  • sanqima
  • 2014年05月12日 16:33
  • 1051

Android应用开发中使用Cookie

       Cookie是网景公司发明的,为了网站的服务器端辨别用户的身份,保持session会话而保存到用户本地磁盘上的用户数据,该数据是经过加密的。Cookie是由服务器端生成,发送给客户端的(...
  • linghu_java
  • linghu_java
  • 2011年05月07日 18:23
  • 17476

cookie和session工作机制和使用场合详解

虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web...
  • jaryle
  • jaryle
  • 2016年08月21日 18:40
  • 1080
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cookie的使用
举报原因:
原因补充:

(最多只允许输入30个字)