php对象里面存对象,PHP:在$ _SESSION中存储'对象'
出于某種原因,HTTP是無狀態(tài)協(xié)議。會話將狀態(tài)焊接到HTTP上。根據(jù)經(jīng)驗,避免使用會話狀態(tài)。
更新:HTTP級別沒有會話的概念;?服務(wù)器通過為客戶端提供唯一ID并告知客戶端在每個請求上重新提交它來提供此功能。然后,服務(wù)器將該ID用作Session對象的大哈希表中的鍵。每當(dāng)服務(wù)器獲得請求時,它都會根據(jù)客戶端隨請求提交的ID,從會話對象的哈希表中查找會話信息。所有這些額外的工作都是可擴展性的雙重打擊(HTTP是無狀態(tài)的一個重要原因)。Whammy One:它減少了單個服務(wù)器的工作量。
Whammy Two:它更難以擴展,因為現(xiàn)在你不能將請求路由到任何舊服務(wù)器 - 它們并不都具有相同的會話。您可以將具有給定會話ID的所有請求固定到同一服務(wù)器。這并不容易,而且它只是一個單點故障(不是整個系統(tǒng),而是整個系統(tǒng)的大塊)。或者,您可以在群集中的所有服務(wù)器之間共享會話存儲,但現(xiàn)在您有更多復(fù)雜性:網(wǎng)絡(luò)連接內(nèi)存,獨立會話服務(wù)器等。
鑒于這一切,您在會話中輸入的信息越多,對性能的影響就越大(如Vinko指出的那樣)。同樣正如Vinko指出的那樣,如果你的對象不是可序列化的,那么會話就會行為不端。因此,根據(jù)經(jīng)驗,避免在會話中放置超過絕對必要的內(nèi)容。
@Vinko您通常可以通過在您發(fā)回的響應(yīng)中嵌入您正在跟蹤的數(shù)據(jù)并讓客戶端重新提交它來解決服務(wù)器存儲狀態(tài),例如,在隱藏的輸入中向下發(fā)送數(shù)據(jù)。如果您確實需要服務(wù)器端狀態(tài)跟蹤,則它應(yīng)該位于您的后備數(shù)據(jù)存儲區(qū)中。
(Vinko補充說:PHP可以使用數(shù)據(jù)庫存儲會話信息,并讓客戶端每次重新提交數(shù)據(jù)可能會解決潛在的可擴展性問題,但是打開了一大堆安全問題,你必須注意現(xiàn)在客戶端控制所有您的國家)
總結(jié)
以上是生活随笔為你收集整理的php对象里面存对象,PHP:在$ _SESSION中存储'对象'的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招行信用卡额度一般是多少
- 下一篇: php 日历 代码,PHP 简单日历实现