隨著互聯網的發展,我們日常生活中使用瀏覽器的頻率越來越高。在訪問網站時,常常需要進行賬戶登錄或者瀏覽記錄等操作,這些操作的實現離不開 HTTP 協議中的 cookie 技術。但是,很多人對 cookie 的存儲位置和存儲方式并不了解,本文將為您揭秘 cookie 的存儲位置以及存儲方式,并提供具體的代碼示例。
一、cookie 的存儲位置
- 客戶端(瀏覽器)中的 cookie 存儲位置
在客戶端,cookie 主要存儲在瀏覽器中,具體存儲位置隨瀏覽器不同而有所差異。以下是常見瀏覽器中 cookie 的存儲位置:
谷歌瀏覽器:
Windows 7/8/10:C:Users{用戶名}AppDataLocalGoogleChromeUser DataDefaultCookies
macOS:~/Library/Application Support/Google/Chrome/Default/Cookies
火狐瀏覽器:
Windows 7/8/10:C:Users{用戶名}AppDataRoamingMozillaFirefoxProfiles{隨機字符}.defaultcookies.sqlite
macOS:~/Library/Application Support/Firefox/Profiles/{隨機字符}.default/cookies.sqlite
微軟 Edge 瀏覽器:
Windows 7/8/10:C:Users{用戶名}AppDataLocalMicrosoftEdgeUser DataDefaultCookies
蘋果 Safari 瀏覽器:
macOS:~/Library/Cookies/Cookies.binarycookies
- 服務器端中 cookie 存儲位置
在服務器端,cookie 一般是通過設置 HTTP 響應報文的 Set-Cookie 頭來實現,具體的存儲位置則根據服務器語言的不同而有所差異。以下是常用服務器端語言中,cookie 的存儲位置:
PHP 語言:
在 PHP 中,通過 “setcookie()” 函數來設置 cookie ,存儲位置為 Web 服務器上的臨時文件夾。
示例:
<?php // 設置 cookie setcookie("user", "zhangsan"); // 獲取 cookie echo $_COOKIE["user"]; ?>
登錄后復制
ASP.NET 語言:
在 ASP.NET 中,通過在 HTTP 響應報文中設置 Set-Cookie 頭來設置 cookie ,存儲位置為 Web 服務器上的內存中。
示例:
Response.Cookies("username").Value = "zhangsan"; // 設置 cookie string username = Request.Cookies["username"].Value; // 獲取 cookie
登錄后復制
二、cookie 的存儲方式
cookie 的存儲方式分為兩種:持久化存儲和會話存儲。
- 持久化存儲
持久化存儲的 cookie,其過期時間是在用戶關閉瀏覽器后才會過期。持久化存儲的 cookie,一般可以設置過期時間,并且存儲在用戶計算機的硬盤上,即使用戶關閉瀏覽器,也能保留這些 cookie。
我們可以通過設置 cookie 的過期時間來控制持久化 cookie。
設置 cookie 過期時間的方法
在 PHP 中,可以通過 setcookie() 函數的第三個參數來設置 cookie 的過期時間,單位為秒。
在 ASP.NET 中,可以通過 Response.Cookies(“cookieName”).Expires 屬性來設置 cookie 的過期時間。
- 會話存儲
會話存儲的 cookie,其過期時間是在用戶關閉瀏覽器后就會失效。會話存儲的 cookie,保存在用戶計算機的內存中,只要用戶關閉瀏覽器,cookie 就會失效,保存在客戶端瀏覽器的內存中,所以也叫做臨時 cookie。
不設置 cookie 的過期時間,即為會話 cookie。
設置 cookie 存儲方式和過期時間的方法
在 PHP 和 ASP.NET 中,可以通過參數來設置 cookie 的存儲方式和過期時間。示例代碼如下:
// PHP 中設置 cookie 的方法
setcookie($name, $value, time()+$expire);
// ASP.NET 中設置 cookie 的方法
HttpCookie cookie = new HttpCookie(name, value);
cookie.Expires = DateTime.Now.AddMinutes(expire);
三、總結
本文為您介紹了 cookie 的存儲位置和存儲方式,尤其是在不同瀏覽器和服務器端語言的環境下,cookie 存儲位置有很大的不同。同時,我們還提供了 PHP 和 ASP.NET 中設置 cookie 的具體代碼示例,希望能對您有所幫助。