隨著互聯(lián)網(wǎng)的發(fā)展,我們?nèi)粘I钪惺褂脼g覽器的頻率越來越高。在訪問網(wǎng)站時,常常需要進行賬戶登錄或者瀏覽記錄等操作,這些操作的實現(xiàn)離不開 HTTP 協(xié)議中的 cookie 技術(shù)。但是,很多人對 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
- 服務(wù)器端中 cookie 存儲位置
在服務(wù)器端,cookie 一般是通過設(shè)置 HTTP 響應(yīng)報文的 Set-Cookie 頭來實現(xiàn),具體的存儲位置則根據(jù)服務(wù)器語言的不同而有所差異。以下是常用服務(wù)器端語言中,cookie 的存儲位置:
PHP 語言:
在 PHP 中,通過 “setcookie()” 函數(shù)來設(shè)置 cookie ,存儲位置為 Web 服務(wù)器上的臨時文件夾。
示例:
<?php // 設(shè)置 cookie setcookie("user", "zhangsan"); // 獲取 cookie echo $_COOKIE["user"]; ?>
登錄后復(fù)制
ASP.NET 語言:
在 ASP.NET 中,通過在 HTTP 響應(yīng)報文中設(shè)置 Set-Cookie 頭來設(shè)置 cookie ,存儲位置為 Web 服務(wù)器上的內(nèi)存中。
示例:
Response.Cookies("username").Value = "zhangsan"; // 設(shè)置 cookie string username = Request.Cookies["username"].Value; // 獲取 cookie
登錄后復(fù)制
二、cookie 的存儲方式
cookie 的存儲方式分為兩種:持久化存儲和會話存儲。
- 持久化存儲
持久化存儲的 cookie,其過期時間是在用戶關(guān)閉瀏覽器后才會過期。持久化存儲的 cookie,一般可以設(shè)置過期時間,并且存儲在用戶計算機的硬盤上,即使用戶關(guān)閉瀏覽器,也能保留這些 cookie。
我們可以通過設(shè)置 cookie 的過期時間來控制持久化 cookie。
設(shè)置 cookie 過期時間的方法
在 PHP 中,可以通過 setcookie() 函數(shù)的第三個參數(shù)來設(shè)置 cookie 的過期時間,單位為秒。
在 ASP.NET 中,可以通過 Response.Cookies(“cookieName”).Expires 屬性來設(shè)置 cookie 的過期時間。
- 會話存儲
會話存儲的 cookie,其過期時間是在用戶關(guān)閉瀏覽器后就會失效。會話存儲的 cookie,保存在用戶計算機的內(nèi)存中,只要用戶關(guān)閉瀏覽器,cookie 就會失效,保存在客戶端瀏覽器的內(nèi)存中,所以也叫做臨時 cookie。
不設(shè)置 cookie 的過期時間,即為會話 cookie。
設(shè)置 cookie 存儲方式和過期時間的方法
在 PHP 和 ASP.NET 中,可以通過參數(shù)來設(shè)置 cookie 的存儲方式和過期時間。示例代碼如下:
// PHP 中設(shè)置 cookie 的方法
setcookie($name, $value, time()+$expire);
// ASP.NET 中設(shè)置 cookie 的方法
HttpCookie cookie = new HttpCookie(name, value);
cookie.Expires = DateTime.Now.AddMinutes(expire);
三、總結(jié)
本文為您介紹了 cookie 的存儲位置和存儲方式,尤其是在不同瀏覽器和服務(wù)器端語言的環(huán)境下,cookie 存儲位置有很大的不同。同時,我們還提供了 PHP 和 ASP.NET 中設(shè)置 cookie 的具體代碼示例,希望能對您有所幫助。