日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WordPressCookies和PHP會話——你需要知道的一切

Cookies是由一位名叫Lou Montulli的計算機程序員于1994年首次發(fā)明的。沒有它們,網(wǎng)絡將是一個完全不同的地方。無論您是登錄wordpress網(wǎng)站的后端還是關閉煩人的彈出窗口,您每天都會使用cookie并與之交互(即使您沒有意識到)。

創(chuàng)新互聯(lián)建站是一家專業(yè)提供南縣企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、網(wǎng)站制作、html5、小程序制作等業(yè)務。10年已為南縣眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

到目前為止,您可能已經(jīng)猜到,當我們提到cookie時,我們指的是用于在網(wǎng)站上存儲重要訪問者信息的cookie ,而不是美味的巧克力片。

今天我們將深入探討cookie和php會話這個有時令人困惑的話題。具體來說,您需要了解有關WordPress如何使用它們的所有信息,以及在托管您的網(wǎng)站、自定義代碼或使用第三方插件時應該注意的一些常見問題(尤其是作為開發(fā)人員)。在我們看來,這個話題討論得還不夠。

什么是Cookie?

cookie(也稱為網(wǎng)絡cookie、跟蹤cookie、HTTP cookie、瀏覽器cookie)是用戶瀏覽器(Chrome、Firefox 等)在訪問網(wǎng)站時存儲的一小段數(shù)據(jù)。它包含有關瀏覽活動的信息,通常用于個性化用戶體驗或用于身份驗證和驗證目的。會話cookie和持久性cookie是常見的cookie類型。

  • Cookie的類型
  • WordPress核心如何使用Cookie
  • 第三方WordPress插件和主題如何使用Cookie
  • Cookie和WordPress緩存
  • 如何查看和清除Cookie
  • GDPR和Cookie
  • PHP會話

Cookie的類型

通常設置兩種不同類型的cookie:會話cookie持久性cookie。

會話Cookie

會話cookie,也稱為臨時cookie,是臨時的。它們沒有附加到期日期,僅存儲有關用戶在單個會話期間所做操作的信息。會話只是當有人訪問網(wǎng)站時分配的隨機生成/唯一值。會話cookie臨時存儲在內(nèi)存中,并在瀏覽器關閉或會話結束時自動刪除。

持久性Cookie

正如您可能已經(jīng)猜到的那樣,持久性cookie是那些包含過期日期的cookie。這些持續(xù)時間更長,并存儲在磁盤上,直到它們過期或由用戶手動清除 。這些有時也稱為“跟蹤cookie”,因為這些是Google Analytics、AdRoll、Stripe等都使用的cookie類型。

我們的返利聯(lián)盟計劃是另一個例子。當用戶點擊附屬鏈接時,會在用戶的瀏覽器中放置一個60天的cookie。這可以確保推薦人獲得適當?shù)男庞?,即使此人已多次關閉并重新打開其瀏覽器。

WordPress核心如何使用Cookie

當我們提到WordPress核心時,我們只是指在安裝任何第三方插件或主題之前構成開源項目的文件。它是我們喜歡稱之為自然狀態(tài)的WordPress。

現(xiàn)在您已經(jīng)了解了cookie是什么以及不同類型的基礎知識,讓我們來看看WordPress核心為什么以及如何使用它們來使所有這些魔術在幕后發(fā)生。有趣的事實Cookie最初源自“magic cookie”一詞。

WordPress核心將cookie用于兩個不同的目的:

1. 登錄Cookie

登錄cookie包含身份驗證詳細信息,并在用戶登錄WordPress管理儀表盤時使用。根據(jù)WordPress Codex,設置了幾個不同的會話cookie:

  • 登錄時,WordPress使用wordpress_[hash]cookie存儲身份驗證詳細信息(僅限該/wp-admin/區(qū)域)。
  • 登錄后,WordPress設置wordpress_logged_in_[hash]cookie。這表明您何時登錄以及您是誰。

當您嘗試訪問WordPress網(wǎng)站的后端時,會檢查上述兩個cookie是否存在并且尚未過期。這就是讓您神奇地繞過 wp-login.php頁面的原因。

WordPress還設置wp-settings-{time}-[UID]cookie。ID是WordPress用戶數(shù)據(jù)庫表中的用戶ID。這存儲個人儀表板和管理界面設置。

2.評論Cookie

默認情況下,當有人對博客文章發(fā)表評論時會設置cookie(有效期為347天)。因此,如果他們稍后回來,他們不必重新填寫所有信息。存儲了以下三個cookie:

  • comment_author_[hash]
  • comment_author_email_[hash]
  • comment_author_url_[hash]

但是,由于GDPR最近對隱私政策進行了更改,WordPress核心引入了新工具,以確保您讓用戶選擇加入這些正在設置的cookie。此設置(如果尚未設置)可以在WordPress管理儀表盤的“設置 → 討論”下啟用。選擇“顯示評論cookies復選框,允許設置評論者cookies?!边x項。流行的Akismet插件還允許您顯示隱私聲明。

評論cookie如何選擇加入

第三方WordPress插件和主題如何使用Cookie

就像WordPress將cookie用于某些功能一樣,您安裝的第三方插件和主題也會設置cookie。他們中的大多數(shù)使用存儲在wp_options表或他們自己的自定義表中的瀏覽器cookie和數(shù)據(jù)庫行的組合。這是因為WordPress是無狀態(tài)的。

無狀態(tài)應用程序是一種應用程序,它不會保存在一個會話中生成的客戶端數(shù)據(jù),以便在與該客戶端的下一個會話中使用。每個會話都像第一次一樣進行,響應不依賴于前一個會話的數(shù)據(jù)。–TechTarget

有了新的隱私法,真正了解設置了哪些cookie以及它們是否為訪問者提供了選擇加入的方式比以往任何時候都更加重要。提示:并非所有cookie都需要選擇加入。

以下只是cookie用途的眾多示例中的幾個:

  • 如果您的WordPress網(wǎng)站上有一個彈出框并且訪問者將其關閉,這通常會設置一個cookie,以便它不會再次出現(xiàn)。
  • 在您的電子商務網(wǎng)站上添加到購物車的商品。存儲cookie以便購物車在您繼續(xù)瀏覽網(wǎng)站時保留您的產(chǎn)品。
  • IP地理位置功能可能會存儲瀏覽該站點的訪問者的IP地址和緯度/經(jīng)度坐標。這通常用于向特定區(qū)域顯示特定內(nèi)容,甚至可能將用戶重定向到不同的子站點。
  • 使用PrettyLinks插件等鏈接縮短器跟蹤點擊活動。
  • 如果用戶已經(jīng)訂閱,通訊插件可能會為他們設置一個cookie,這可以完全隱藏通訊框。

基本上,在WordPress網(wǎng)站上的任何操作或選擇加入,通常都會涉及在幕后在瀏覽器中設置cookie。當然,這樣做的目的是嘗試幫助改善瀏覽器體驗或通過驗證提供額外的功能。

WooCommerce Cookie

諸如WooCommerce之類的電子商務插件通常會設置自己的附加cookie,以便買家可以輕松地將商品添加到購物車、存儲以供以后結帳以及登錄和退出帳戶。

為了跟蹤購物車數(shù)據(jù),WooCommerce設置了以下三個cookie  (cookie中不存儲個人信息):

  • woocommerce_cart_hash
  • woocommerce_items_in_cart
  • wp_woocommerce_session_

前兩個cookie包含有關購物車的信息,只是幫助WooCommerce知道購物車數(shù)據(jù)何時更改。第三個cookiewp_woocommerce_session_包含每個客戶的唯一代碼,該代碼對應于數(shù)據(jù)庫中自定義wp_woocommerce_sessions表中的條目。

wp_woocommerce_sessions表

wp_commerce_session_數(shù)據(jù)之前存儲在wp_options表中,但在WooCommerce 2.5中引入了新的會話處理程序時,它們被移動到了自己的自定義表中。這是為了提高性能、可伸縮性和會話管理。否則,您很快就會得到一個必須清理的臃腫的wp_options表。

Easy Digitial Downloads Cookie

Easy Digital Downloads默認使用WP_Session,它是瀏覽器cookie和存儲在wp_options表中的數(shù)據(jù)庫行的組合。下面是它設置的cookie:

  • edd_items_in_cart

Cookie和WordPress緩存

說到WordPress緩存,這就是事情變得棘手的地方。緩存本質(zhì)上是存儲來自一個請求的資源并將這些資源重用于后續(xù)請求的過程?;旧希?strong>減少了生成頁面視圖所需的工作量。雖然這對性能很有好處,但在涉及cookie時會引起問題。

為什么?因為cookie用于執(zhí)行特定操作,例如在您瀏覽WooCommerce網(wǎng)站時保持購物車的填充。但是,如果頁面是從緩存中提供的,那么PHP和數(shù)據(jù)庫都不會做任何事情,服務器只會提供頁面的靜態(tài)副本。

所以,你可以做什么?

1. 使用JavaScript

第一個選項是使用JavaScript并動態(tài)更新頁面上的內(nèi)容。基本上,您有HTML占位符并使用JavaScript通過API或ajax調(diào)用獲取信息。

一個示例是通過使用JavaScript在wp-api上獲取文章列表,然后在側邊欄中呈現(xiàn)它們,從而在WordPress側邊欄中加載文章列表。在這種情況下,您可以在不從緩存中清除頁面的情況下更新文章列表,因為數(shù)據(jù)是動態(tài)生成的。

雖然這并不理想,但在性能方面,如果可能的話,緩存總是更好。但是,如果您必須讓一些內(nèi)容保持動態(tài),而頁面本身可以保持靜態(tài)(從緩存中提供),這是一種方法 – 使用JavaScript通過API/ajax動態(tài)下拉頁面該部分的內(nèi)容稱呼。但是,除非您可以聘請WordPress開發(fā)人員來構建自定義JavaScript解決方案或插件擴展,否則此選項通常不實用。

2. 使用Admin-Ajax調(diào)用

Admin-ajax.php無法緩存,因此您可以使用admin-ajax調(diào)用。No Cache AJAX Widgets插件就是一個很好的例子。它進行admin-ajax調(diào)用,因此不必擔心與服務器級或第三方緩存解決方案發(fā)生沖突。

然而,就像使用JavaScript一樣,沿著這條路線走對于普通用戶來說通常是不可行的。它還可能導致其他性能問題,例如高admin-ajax使用率 和大量未緩存請求。

3. 從緩存中排除頁面(當Cookie存在時)

除非您可以使用JavaScript或admin-ajax路由,否則當存在特定cookie時將頁面從緩存中排除是最好的方法。這通常是我們推薦的,尤其是那些運行高度動態(tài)網(wǎng)站的網(wǎng)站,例如WooCommerce和Easy Digital Downloads。

在設置緩存的時候,我們應該將某些WooCommerce和Easy Digital Downloads頁面(例如購物車、我的帳戶和結帳)設置自動從緩存中排除。比如設置服務器級別的規(guī)則,以便用戶在檢測到woocommerce_items_in_cartcookie 或 edd_items_in_cartcookie時自動繞過緩存,以確保順利和同步的結帳過程。

當我們檢測到有人登錄WordPress時,我們還會偵聽相關的登錄cookie并將緩存設置為繞過。這可以防止后端儀表板意外被緩存。

默認情況下,我們不會wp_woocommerce_session_從緩存中排除cookie。根據(jù)我們的經(jīng)驗,大多數(shù)WooCommerce網(wǎng)站都沒有任何問題。這還通過增加緩存HIT比率來提高性能,同時使用更少的PHP workers。

但是,由于有許多不同的WordPress主題和插件配置,wp_woocommerce_session_如果需要,我們可以從緩存中排除cookie。只需聯(lián)系我們的支持團隊。結果是,一旦用戶將產(chǎn)品添加到他們的購物車中,所有后續(xù)請求都不會從緩存中得到處理,從而增加了PHP worker的使用率。

如果您需要從緩存中排除的自定義頁面,請隨時與我們的支持團隊開票。同樣,您必須小心excludes。太多未緩存的頁面確實會降低性能。

如何查看和清除Cookie

在網(wǎng)站上查看和清除cookie很容易。要查看在特定站點上設置了哪些cookie,請瀏覽到該站點并單擊頂部的小掛鎖圖標。然后點擊“Cookie”。

正在使用的Cookie

然后深入到該網(wǎng)站的文件夾。在下面的示例中,您可以看到我們設置了一些WooCommerce cookie以及 wordpress_logged_in_[hash]cookie。您還可以查看過期時間以及它是持久cookie還是會話cookie(瀏覽會話結束時)。

WordPress cookie

要刪除cookie,只需單擊單個cookie并單擊“刪除”按鈕。您也可以在文件夾級別或Chrome DevTools中執(zhí)行此操作。

清除cookie還可以幫助您修復304錯誤。

或者,您可以在瀏覽器中搜索或清除所有cookie。

GDPR和Cookie

GDPR是一項新的隱私法,于2018年5月25日生效。它旨在讓公民重新控制他們的個人數(shù)據(jù)。

下面是一個為幫助遵守新法律所做的一項更改的示例。當您第一次訪問我們的網(wǎng)站時,您可能已經(jīng)看過它,您會在屏幕底部看到“ACCEPT Cookies”提示。這是因為我們現(xiàn)在被法律要求為用戶提供一種選擇加入和選擇退出設置的cookie的方式。在不通知用戶數(shù)據(jù)收集的情況下只運行您想要的任何東西的日子已經(jīng)一去不復返了。

如果您單擊“ACCEPT Cookie”,則會為用戶設置所有Cookie。如果您單擊“Cookie Setting”,我們現(xiàn)在會提供一種方式來選擇加入和退出您想要的任何Cookie。

Cookie設置

很漂亮吧?我們的cookie解決方案是由我們的開發(fā)人員內(nèi)部構建的,但這里有一些有用的GDPR WordPress插件,可以幫助您完成類似的事情。同樣,Cookie只是完全符合 GDPR 的一小部分。

PHP會話

PHP會話是標準cookie方法的替代方案。它仍然是一個cookie,但它被稱為PHPSESSID,通常存儲在Web服務器本身的/tmp/目錄中。服務器知道將給定會話與給定請求相關聯(lián)的方式是它也存儲在HTTP cookie中。

PHPSESSID HTTP cookie

這也可以在站點的HTTP標頭下看到。

HTTP標頭設置cookie PHPSESSID

PHP session很像一個普通的session,它在用戶關閉瀏覽器時結束。

PHP會話的問題都歸結為性能和緩存問題。存儲在瀏覽器cookie中的信息必須隨著每個請求來回反彈,以便服務器知道用戶是誰。這意味著對于使用PHPSESSID的站點,主機必須設置PHPSESSID以繞過緩存。然而,結果是PHPSESSID必須設置為100%的時間繞過,因為與 wordpress_logged_in不同的是,PHPSESSID是在每個PHP請求上設置的。

所以想象一下,wordpress_logged_in必須設置100%的時間才能允許登錄功能正常工作。這意味著即使是注銷的用戶也必須擁有cookie,并且它必須對他們來說是唯一的。想象一下,為了使WordPress登錄系統(tǒng)正常工作,這是必需的。在這種情況下,每個頁面視圖都必須繞過緩存,以便wordpress_logged_in為登錄和注銷的用戶正確設置cookie。

這就是使用PHPSESSID的問題。因為它是在每一個PHP請求上生成的,所以如果一個站點依賴于PHPSESSID cookie,主機將不得不設置PHPSESSID以100%的時間繞過緩存。否則,PHPSESSID最終會被緩存,并且會破壞依賴它的任何功能。

我們不建議使用PHP會話,PHP會話還具有其他應考慮的安全隱患。

如果您在您的網(wǎng)站上看到代碼使用session_start,這意味著它使用PHP會話。

許多插件和主題開發(fā)人員已經(jīng)開始使用瀏覽器cookie和數(shù)據(jù)庫行的組合(在wp_options表中或他們自己的自定義表中)。如果您需要會話數(shù)據(jù),這是更好的方法。

小結

希望現(xiàn)在您比以前更了解WordPress cookie和PHP會話的工作原理。Cookies目前是讓世界運轉的東西,對于WordPress網(wǎng)站上發(fā)生的幾乎所有事情都很重要。從讓我們保持登錄狀態(tài),到確保順暢的購物車體驗,甚至確保彈出窗口保持關閉狀態(tài)。


名稱欄目:WordPressCookies和PHP會話——你需要知道的一切
分享網(wǎng)址:http://m.5511xx.com/article/djoipjo.html