長沙發上的對話(一)
發表時間:2024-02-07 來源:明輝站整理相關軟件相關文章人氣:
[摘要]開始治療 心理醫生: 好。你今天感覺怎么樣,維克多?病人: 不太好,醫生。我近來感到有點憂郁... 心理醫生: 那是為什么,維克多?病人: 我不知道,醫生。我睡眠不太好,而且我一點胃口也沒有。有一天我們去一個意大利餐館,要了通心面 -- 但時當他們把它端上來的時候,我一點也吃不下去。我就一直看著它...
開始治療 心理醫生: 好。你今天感覺怎么樣,維克多?
病人: 不太好,醫生。我近來感到有點憂郁...
心理醫生: 那是為什么,維克多?
病人: 我不知道,醫生。我睡眠不太好,而且我一點胃口也沒有。有一天我們去一個意大利餐館,要了通心面 -- 但時當他們把它端上來的時候,我一點也吃不下去。我就一直看著它,在我的頭里一直回蕩著“女高音”的主題曲...
心理醫生: 家里怎么樣?
病人: 都很好,我想。Marge大部分時間都在廚房,試她從網上下載的菜譜。孩子們每天很早就出去了,一般在吃飯時才看得見他們,但是現在他們開始在Burger King吃了。那我也不能責備他們。
心理醫生: 工作 - 都很好吧?
病人: 不太好 - 我有一個虐待成性的魔鬼老板,他打算打我的生活變成象Dilbert Zone一樣!
心理醫生: 跟我說一說他吧。
病人: 好,你知道我是做什么的 - 我是一個在Used Socks. Inc.的web程序員。下個星期我們的新網站就要使用了,我們正在做著完全不同的東西 -- 一個在線商店,供人們出售他們的舊物。我們得到了一些好心人的投資 - 6百萬元,如果我們成為在web最受歡迎的舊物門戶,我們還可得到更多的投資。
心理醫生: 聽上去對你不錯嘛。
病人: 你說的對。但是,然后有一天老板進來,他說他交給我一項開發在線商店購物車的工作。他明確地要求我用什么叫“session”的東西。當然,只不過讓事情變得有趣,他說他想在兩天內做完并能運行...虐待狂、變態!
心理醫生: 有問題嗎?
病人: 有,特別是首先我根本不知道“session”是什么,或怎么去用它。我意思是說,我原以為一個session 就是對一個病人的短期治療 -- 有一點象我們正在做的一樣。
心理醫生: 哦,維克多,維克多...這就是麻煩你的事嗎?我想我可能有東西能幫助你...
西雅圖無狀態
開低級玩笑的人為了給能聽到談話的年輕女性留下印象,互相之間最經常說的事情之一就是:“HTTP是一種無狀態協議,Internet是無狀態開發環境”。用簡單的話來講,HTTP(HyperText Transfer Protocal )協議,作為web的骨干,不能夠記住與一個網站連接用戶的身份,所以對web頁的請求被看作是唯一和獨立的連接,與在它之前的連接無論如何都沒有關系 -- 這一點與今天很多愛冒險的十幾歲的年輕人的行為很象,他們每天喝? 夜,第二天早晨醒來對發生過什么都不記得了,晚上再出去做同樣的事,一遍又一遍...
現在,如果你是漫無目的地從一個站點沖浪到另一個,沒有什么問題。但是當你想從Amazon.com上買幾本書會怎么樣呢?“在一個無狀態的環境中,記住所有在你的購物單上的物品是非常困難的,因為HTTP協議的這種無狀態的性質使得跟蹤選中物品是不可能的。
因此就要求一種能夠使記住狀態成為可能的方法,能夠跟蹤用戶的連接并且保存連接特定數據的東西。因此產生了“cookie”,它可以允許Web 站點在客戶系統的一個文件中保存客戶特定信息,并且當任何時候請求時都可以從文件中取出信息。所以,在上面的購物車例子中,被選中的商品可以加到cookie中,并且在消費者結帳時,可以被取出并呈現在購物單中。
基于cookie的解決方案存在一個問題,那就是它要求cookie能夠被客戶所接受。所以,有另一種解決辦法就是使用“session”,當一個客戶訪問一個Web站點時,用它來保存特定的一小塊數據。這個會話(session)數據在整個訪問期間被保存下來。一個session可以被看成一個信息籃,它保存著主機的變量對。這些變量對在整個訪間期間都存在,并且可以在任何時刻被處理。這個方法對協議的無狀態的特點提供了一流的解決辦法,并且在今天很多大型的網站上,可以跟蹤和保存信息,用于個人和商業交易。
每一個被創建的session 都有一個唯一的標識串,這個串被發送到客戶端,同時在服務端也生成了同樣唯一標識串的入口,或者放在文本文件或者在一個數據庫中。現在就可以注冊任何的session 變量 -- 這些普通的變量可以保存文本或數值信息,可以通過session 被讀出,或寫入。
現在,如果你已經跟隨著開放源碼運動,你已經知道了PHP ,在這個星球上最熱門的腳本語言。最新的版本是PHP4,包括了對session的創建和管理的支持,在下面的幾頁中,我們將向你展示如何使用它。如果你還在使用PHP3,不要失望 -- 我們也將涉及PHPLIB,它包括一組強大的PHP對象,可以在基于PHP3的站點上加入無縫的session管理。
在下面幾頁中,我們假設你已經有一個支持PHP4或PHPLIB的站點。如果還沒有,你應該下載這些包,并且將它們安裝到你的開發機器上去。PHP4,是一個質量優良的代碼,可以在PHP站點 http://www.php.net找到,最新的PHPLIB版本可以在http://phplib.netuse.de/找到。