簡體   English   中英

LAMP 堆棧中的哪個應用程序組件設置“Set-Cookie”標頭

[英]What application component in a LAMP stack, sets the "Set-Cookie" header

我正在使用的應用程序接受三種不同類型的登錄。 如果客戶端從某些 IP 地址或 POST 請求連接,無論是從普通瀏覽器呈現的表單,還是朝向 JSON 讀取 API 端點,都會自動連接。

所有三個選項都歸結為調用相同的函數來將用戶注冊為登錄並生成會話。

盡管我可以確定代碼路徑是相同的,但其中兩個始終有效,而一個始終無法向響應添加“Set-Cookie”標頭,即使應用程序邏輯生成一個 sessionid 並在反應體。

從來不需要深入研究會話身份驗證如何工作到這種詳細程度,我意識到我不明白。 'Set-Cookie' 標頭應該來自哪里 應用程序邏輯是否應該始終手動構建標頭? 一旦session_start()被調用,PHP 會自動執行嗎? Apache 是否根據標頭的其他部分執行此操作?

我通過在我正在使用的代碼庫中找不到任何帶有grep -ri "set.cookie" *內容來排除 1。

session_start發送會話緩存限制器會話 cookie (或使用您的 PHPSESSID 設置 $_GET 鍵)。

這個函數是發送 Set-Cookie 參數的地方。 當 Apache 將頁面發回時,它會將其傳遞回瀏覽器。

但是您需要記住,存儲 cookie 實際上取決於瀏覽器 總的來說,它們的設置不會有問題,但某些條件會阻止這種情況發生,例如 Internet Explorer 中的安全設置或用戶完全拒絕 cookie。

進一步閱讀:

http://www.php.net/manual/en/function.session-start.php

http://www.php.net/manual/en/function.session-get-cookie-params.php

http://www.php.net/manual/en/function.session-status.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM