我正在尋找主要差異黑白會話和cookies以及何時使用會話和cookies.Phanks會話可否在沒有Cookie的情況下工作?如果是這樣,在沒有啓用Cookie的情況下,會話如何工作?
回答
作爲另一個用戶鏈接到,是的,他們可以,有php的配置選項,不使用cookie而是依靠傳遞會話ID作爲url的一部分。您可以手動執行此操作,也可以讓PHP執行此操作。如果PHP設置爲自動添加ID,那麼它使用輸出緩衝來替換它在輸出中檢測到的任何url,默認情況下它會在某些標記(a,表單等)上執行此操作。
在此處查看選項:http://php.net/manual/en/session.configuration.php
session.use_cookies
布爾 session.use_cookies指定 模塊是否會使用cookie來存放會話ID的客戶端。 默認爲1(啓用)。
session.use_trans_sid
布爾值 session.use_trans_sid是否 透明sid支持是否啓用。默認爲0(禁用)。
session.trans_sid_tags
串 session.trans_sid_tags指定被改寫 HTML標籤,包括會話ID當啓用透明SID 支持。默認爲 a = href,area = href,frame = src,input = src,form = form是特殊標籤。被添加爲表單變量。
還聽取了警告:
注:基於URL的會話管理有更多的安全風險 比基於cookie的會話管理。例如,用戶可以通過電子郵件向其朋友發送包含活動會話ID的URL,或者 將包含會話ID的URL保存到他們的書籤,並且始終以相同會話ID訪問 。由於PHP 7.1.0,完整的URL路徑,例如https://php.net/,由trans sid功能處理。以前的PHP只處理相對URL路徑。重寫目標 主機由session.trans_sid_hosts定義。
cookie和session
一般會議做使用cookies。你問過會話和cookie之間的區別;雖然這裏沒有真正的可比的是他們兩個的一些信息:
餅乾
Cookies是瀏覽器存儲內的本地存儲簡單的鍵/值對的方法,則可以在瀏覽器重啓之間持續存在,但用戶可以擦他們。 Cookie不能總量超過4KB以上(見What is the maximum size of a web browser's cookie's key?)
從文檔:http://php.net/manual/en/function.setcookie.php
$value = 'something from somewhere';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
// Print an individual cookie
echo $_COOKIE["TestCookie"];
會議
當你調用session_start()
PHP檢查餅乾,看它是否已經設置了「會話ID',如果沒有設置一個。然後它使用它來識別用戶/會話,並允許您臨時保存歸屬於該ID的服務器上的數據。每次你調用session_start時,它都會填充$ _SESSION,並且在每個腳本的結尾都會保存這個。這確實意味着如果頁面都使用會話,則頁面無法同時加載。會議的一些很好的例子可以看這裏:https://www.w3schools.com/php/php_sessions.asp
會話沒有限制本身,而是由其他因素的限制(見Maximum size of a PHP session)
摘要
- 會議一般使用Cookie
- Cookie數據存儲在本地,會話數據存儲在服務器上
- Cookie數據大小限制相對較小(4K),Session Da ta只受其他事物的限制。
- Cookie數據僅僅是簡單的鍵/值對,會話數據,也可以數組,對象
- 1. Express會話可否在沒有cookie的情況下工作?
- 2. PHP會話可以在沒有Cookie的情況下工作嗎?
- 3. ASP.NET會話狀態是否在沒有Cookie的情況下工作?
- 4. 在沒有會話cookie的情況下設計token_authenticatable
- 5. 這是否在沒有用戶許可的情況下工作?
- 6. 如何在沒有會話和cookie的情況下存儲數據?
- 7. 如何在沒有http會話的情況下使用CDI- @ SessionScoped
- 8. 是否可以在沒有cookie的情況下設置nginx?
- 9. 在沒有使用cookie訪問會話的情況下獲取sessionId
- 10. 在子域下工作的會話cookie
- 11. 在沒有cookie或其他跟蹤的情況下請求會話?
- 12. getch()在沒有conio.h的情況下工作 - 這怎麼可能?
- 13. 變量作用域在這種情況下會如何工作?
- 14. 是否可以在沒有Redis的情況下使用Spring Boot會話?
- 15. mongoose.mongo.MongoClient.connect()是否在沒有mongo shell的情況下工作?
- 16. TFS是否在沒有域的情況下工作?
- 17. AngularJs是否在沒有引導的情況下工作
- 18. Validator.SetFocusOnError是否在沒有回傳的情況下工作?
- 19. DropDownList的SelectedIndexChanged()如何在沒有回傳的情況下工作?
- 20. 是否可以在沒有邀請的情況下連接到Multipeer Connectivity會話?
- 21. 在沒有會話的情況下使用彈簧會話範圍
- 22. 如何在沒有Cookie的情況下嵌入YouTube視頻?
- 23. SDL如何在沒有源文件的情況下工作?
- 24. 此代碼如何在沒有@EnableMVC的情況下工作?
- 25. UITableView如何在沒有註冊類的情況下工作:forCellReuseIdentifier:
- 26. GDI/GDI +如何在沒有OpenGL或DirectX的情況下工作
- 27. hibernate如何在沒有JPA規範的情況下工作
- 28. printf如何在沒有修飾符的情況下工作?
- 29. 如何使RSACryptoServiceProvider在沒有填充的情況下工作(nopadding)?
- 30. 如何讓Drupal在沒有PDO的情況下工作
[PHP的文檔不會告訴你另一個選項餅乾(http://php.net/manual/ EN/session.idpassing.php) –