7.1 Keep-Alive 頭
還有一些更有用的標題。Keep-Alive標頭告訴服務器保持連接打開:服務器不會在發送響應後立即關閉連接。這將導致同一客戶端對服務器的下一次請求更快地完成。
這種標頭的示例:
Connection: Keep-Alive
但如果所有客戶端都需要永久連接,那麼問題就會從服務器端開始。服務器將不可用或開始自行關閉連接。
7.2 緩存控制頭
Cache-Control標頭可用於控制內容緩存。正確配置的緩存可以加快內容的處理速度,配置不當的緩存會突然產生問題。
要禁用緩存,您需要編寫以下標頭:
Cache-Control: no-cache, no-store, must-revalidate
緩存中不應存儲任何內容——既不是來自客戶端請求,也不是來自服務器響應。請求總是發送到服務器,響應總是被完全下載。
您還可以啟用最原始和最可靠的緩存類型:
Cache-Control: no-cache
在發出副本之前,緩存會查詢源服務器以查看資源是否是最新的。
您可以以秒為單位指定資源緩存時間。標題將如下所示:
Cache-Control: max-age=31536000
此標頭指定內容的最長緩存時間。
7.3 餅乾
服務器可以在客戶端存儲數據。此類數據稱為cookie。但是,客戶端也可以存儲 cookie。他們對雙方都非常有幫助。
例如,您訪問該站點,並且您已獲得該站點的授權。也就是你上次登錄的時候,服務器命令瀏覽器存儲某個用戶登錄成功的信息。
這是 Cookie 在請求中的樣子:
Cookie: name=value;name2=value2;nameN=valueN00
Cookie 通常由瀏覽器存儲,並且與特定域相關聯。當您再次訪問同一個域時,cookie 會自動添加到 http 請求和 http 響應中。服務器/域無法接收由另一個服務器/域存儲在瀏覽器中的 cookie。
每個 cookie 有 4 個主要參數:
- 姓名;
- 意義;
- 有效期(保存多長時間);
- cookie 綁定的域。
Cookies是以文本形式存儲和傳輸的,所以name和value都是字符串。如果未指定 cookie 過期時間,則它們會在瀏覽器關閉後被銷毀。
7.4屆
用戶登錄站點後,他們說站點和服務器之間已經建立了會話。
服務器本身創建一個特殊對象 -HttpSession,
它存儲所有必要的信息以與授權客戶端一起工作。並且這個對象的唯一編號以Cookie的形式存儲在瀏覽器中。
Java Web 服務器通常使用一個名稱JSESSIONID
來存儲會話 ID。它看起來像這樣:
Cookie: JSESSIONID =ABAD1D
在服務器端,可以設置session的生存期,以及是否在瀏覽器關閉時自動關閉。
GO TO FULL VERSION