<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      對于CGI讀寫COOKIE的編程

      [摘要]COOKIE的用途相信大家都知道了,有時我們的CGI需要記錄讀取某個來訪者的信息,例如該來訪者使用該用的情況,那就得用到COOIKE技術,下面就討論一下如何用CGI來記錄、讀取來訪者計算機中的COOKIE。   COOKIE在不同的瀏覽器上的存儲方式是不同的,但這并不存在不兼容的問題,因為WEB...
      COOKIE的用途相信大家都知道了,有時我們的CGI需要記錄讀取某個來訪者的信息,例如該來訪者使用該用的情況,那就得用到COOIKE技術,下面就討論一下如何用CGI來記錄、讀取來訪者計算機中的COOKIE。 

        COOKIE在不同的瀏覽器上的存儲方式是不同的,但這并不存在不兼容的問題,因為WEB服務器與瀏覽器之間是通過HTTP響應頭實現互相傳送COOKIE的信息的,我們在讀寫COOKIE時不必理會其在客戶端是怎么存儲的。 

        在CGI向來訪者的計算機中寫入一條COOKIE時,CGI需要向瀏覽器發送一個響應頭: 

      Set-Cookie:name1=value;name2=value2;exprires=DATE;PATH=PATH;domiam=DOMAIN_NAME;SECURE 

        現在逐個來解釋以上響應頭各項的含義,各項內容是用分號閣開的 

        我們看到 name1=value和name2=value2 就是你要設置的COOKIE的內容,它是以名字=值的方式發送的,而name=value中不可以有冒號、逗號、和空格,但可以用%XX代替,XX為一個16進制數; 

      exprires=DATE項是有關COOKIES的生存期,即該COOKIE的有效期,有效期的時間格式是格林威治時間格式:wdy,DD-MON-YYYY HH:MM:SS GMT 
      這一項在寫入COOIE時是可選的,但不設置的話瀏覽器與WEB服務器的一次連接結束后,COOKIE就過了有效期; 

      domian項定義哪些主機可以讀取COOKIES,通常COOKIE存放的都不重要的信息,如果你要存放的的信息不大重要,這一項也不用設置; 

      PATH項是定義了一臺主機上哪些WWW資源可以讀取你所設置的COOKIE,如果PATH=/ 則這臺主機上所有WWW資源可以讀取你所設置的COOKIE; 

      SECURE是有關加密傳送我們可不用理會。 
      如果你在一臺支持COOKIE的客戶端設置了COOKIE,當這個客戶端在次來訪問時,瀏覽器會向你的CGI所在的WEB服務器發送一條HTTP響應頭,這個響應頭為: 
      Cookie:name1=value;name2=value2;exprires=DATE;PATH=PATH;domiam=DOMAIN_NAME;SECURE 
      根據這個HTTP響應頭WEB服務器的環境變量 HTTP_COOKIE=:name1=value;name2=value2 
      我們對這個環境變量的內容進行分解就可以的到我我們要的信息。 

        以下給出我寫的讀寫COOKIE的兩段PERL程序,你也可以把它改寫為C語言 

      設置COOKIE: 

      print "Content-type:text/htmln"; 
      print "Set-Cookie:name1=zjxyz;expires=Thursdday,01-Jan-2000 12:00:00 GMTn"; 
      print "Set-Cookie:name2=ken;expires=Thursdday,01-Jan-2000 12:00:00 GMTn"; 
      print "Set-Cookie:name3=ken;expires=Thursdday,01-Jan-2000 12:00:00 GMTnn"; 

        讀取COOKIE和分解的過程: 

      @pairs = split(/&/, $ENV{’HTTP_COOKIE’}); 
      foreach $pair (@pairs){ 
      ($name, $value) = split(/=/, $pair); 
      $value =~ tr/+/ /; 
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; 
      $cookie{$name} = $value;} 



      日韩精品一区二区三区高清