我有一個API依賴於請求之間的某些狀態信息。作爲代碼的第一個簡單版本,我只是簡單地使用PHP會話來存儲狀態信息,而不是更先進的(APC,memcache,DB)。在我通過網絡瀏覽器進行的最初測試中,一切都很完美。但是,似乎當客戶端嘗試通過諸如Curl或wget之類的非瀏覽器方法進行連接時,狀態信息未被保留。在PHP中會創建一個會話,如果瀏覽器不使用
僅當瀏覽器正在請求頁面時纔會創建PHP會話嗎?我明確地使用session_start()開始會話,並使用session_name()事先命名它。
附加說明。我瞭解到,我遇到的一個主要問題是我正在命名會話,而不是通過session_id($ id)設置會話ID;我使用session_name()的意圖是檢索先前創建的同一會話,並且正確的方法是將session_id設置爲session_name。
看來,會話信息將保留在服務器上,如下所述(謝謝)。但爲了保持這一點,您必須通過會話ID,或者,在我的情況下,任何其他唯一標識用戶的ID。使用此id作爲session_id,您的會話將按預期運行。
>但如果客戶端不支持cookie(如捲曲或wget) 實際上。同時支持一些存儲/加載cookie文件的方式 – Uberfuzzy 2008-10-04 09:29:16