• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Cookie的使用來彌補http的缺陷

    發表于:2007-06-23來源:作者:點擊數: 標簽:
    HTTP協議是非常強大的。不過,它有一個 缺陷 就是不記憶狀態。這意味著,當一次HTTP會話結束后,不管是客戶還是 服務器 ,都不記憶剛剛發生的會話。這有可能導致一些麻煩,因為服務器無法知道一些重要的事情,諸如口令、發給客戶的紀錄等。 HTTP協議提供了一

       
      HTTP協議是非常強大的。不過,它有一個缺陷就是不記憶狀態。這意味著,當一次HTTP會話結束后,不管是客戶還是服務器,都不記憶剛剛發生的會話。這有可能導致一些麻煩,因為服務器無法知道一些重要的事情,諸如口令、發給客戶的紀錄等?!?
      

      HTTP協議提供了一個基本方法可以讓客戶的機器中保存一些信息,這樣,服務器就可以從中知道上一次HTTP會話的的情況,這就是所謂的Cookie?! ookie實際是一個字符串,它的格式是 CookieName=CookieValue。Cookie中不應該有分號或逗號??蛻艨梢跃芙^Cookie,所以任何一個Web應用程序不能認為客戶的機器肯定有Cookie。察看Cookie的情況可以在WindowsCookies中找?! ≡贒elphi中管理Cookie是一件非常容易的事。
      
      THTTPRequest和THTTPResponse都封裝了用來處理Cookie的特性和方法,允許您控制怎樣讀寫Cookie?! ∫O置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?!?br />   在Web服務器端,您可以通過TWebRequest的CookieFields特性訪問由客戶傳遞來的Cookie。這個特性是一個TStrings對象,每個Cookie的格式是param=value。調用TWebRequest的ExtractCookieFields()方法可以把多個Cookie分解為一個個字符串?! ookie可以保存任何字符串所能表達的信息。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

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>