溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

html頁面中meta的作用以及頁面的緩存與不緩存設(shè)置的案例分析

發(fā)布時(shí)間:2020-10-15 15:03:56 來源:億速云 閱讀:673 作者:小新 欄目:web開發(fā)

小編給大家分享一下html頁面中meta的作用以及頁面的緩存與不緩存設(shè)置的案例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

HTML的HTTP協(xié)議頭信息中控制著頁面在幾個(gè)地方的緩存信息,包括瀏覽器端,中間緩存服務(wù)器端(如:squid等),Web服務(wù)器端。本文討論頭信息 中帶緩存控制信息的HTML頁面(JSP/Servlet生成好出來的也是HTML頁面)在中間緩存服務(wù)器中的緩存情況。

HTTP協(xié)議中關(guān)于緩存的信息頭關(guān)鍵字包括Cache-Control(HTTP1.1),Pragma(HTTP1.0),last-Modified,Expires等。

HTTP1.0中通過Pragma 控制頁面緩存,可以設(shè)置:Pragma或no-cache。網(wǎng)上有非常多的文章說明如何控制不讓瀏覽器或中間緩存服務(wù)器緩存頁面,通常設(shè)置的值為no- cache,不過這個(gè)值不這么保險(xiǎn),通常還加上Expires置為0來達(dá)到目的。但是如我們刻意需要瀏覽器或緩存服務(wù)器緩存住我們的頁面這個(gè)值則要設(shè)置為 Pragma。

HTTP1.1中啟用Cache-Control 來控制頁面的緩存與否,這里介紹幾個(gè)常用的參數(shù):

?no-cache,瀏覽器和緩存服務(wù)器都不應(yīng)該緩存頁面信息;

?public,瀏覽器和緩存服務(wù)器都可以緩存頁面信息;

?no-store,請求和響應(yīng)的信息都不應(yīng)該被存儲在對方的磁盤系統(tǒng)中;

?must-revalidate,對于客戶機(jī)的每次請求,代理服務(wù)器必須想服務(wù)器驗(yàn)證緩存是否過時(shí);

Last-Modified只頁面的最后生成時(shí)間,GMT格式;

Expires過時(shí)期限值,GMT格式,指瀏覽器或緩存服務(wù)器在該時(shí)間點(diǎn)后必須從真正的服務(wù)器中獲取新的頁面信息;

上面兩個(gè)值在JSP中設(shè)置值為字符型的GMT格式,無法生效,設(shè)置long類型才生效;

下面是一個(gè)測試?yán)樱?/p>

package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletA extends HttpServlet {
@Override
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
//servlet頁面默認(rèn)是不緩存的
//本頁面允許在瀏覽器端或緩存服務(wù)器中緩存,時(shí)限為秒。
//秒之內(nèi)重新進(jìn)入該頁面的話不會進(jìn)入該servlet的
java.util.Date date = new java.util.Date(); 
response.setDateHeader("Last-Modified",date.getTime()); //Last-Modified:頁面的最后生成時(shí)間 
response.setDateHeader("Expires",date.getTime()+); //Expires:過時(shí)期限值 
response.setHeader("Cache-Control", "public"); //Cache-Control來控制頁面的緩存與否,public:瀏覽器和緩存服務(wù)器都可以緩存頁面信息;
response.setHeader("Pragma", "Pragma"); //Pragma:設(shè)置頁面是否緩存,為Pragma則緩存,no-cache則不緩存
//不允許瀏覽器端或緩存服務(wù)器緩存當(dāng)前頁面信息。
/*response.setHeader( "Pragma", "no-cache" ); 
response.setDateHeader("Expires", ); 
response.addHeader( "Cache-Control", "no-cache" );//瀏覽器和緩存服務(wù)器都不應(yīng)該緩存頁面信息
response.addHeader( "Cache-Control", "no-store" );//請求和響應(yīng)的信息都不應(yīng)該被存儲在對方的磁盤系統(tǒng)中; 
response.addHeader( "Cache-Control", "must-revalidate" );*///于客戶機(jī)的每次請求,代理服務(wù)器必須想服務(wù)器驗(yàn)證緩存是否過時(shí);
System.out.println("進(jìn)入了servlet");
response.getWriter().write("歡迎光臨我的主頁");
}
}

  如果需要在html頁面上設(shè)置不緩存,這在<head>標(biāo)簽中加入如下語句:

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="">

附:html頁面中meta的作用

  meta是用來在HTML文檔中模擬HTTP協(xié)議的響應(yīng)頭報(bào)文。meta 標(biāo)簽用于網(wǎng)頁的<head>與</head>中,meta 標(biāo)簽的用處很多。meta 的屬性有兩種:name和http-equiv。name屬性主要用于描述網(wǎng)頁,對應(yīng)于content(網(wǎng)頁內(nèi)容),以便于搜索引擎機(jī)器人查找、分類(目前幾乎所有的搜索引擎都使用網(wǎng)上機(jī)器人自動查找meta值來給網(wǎng)頁分類)。這其中最重要的是description(站點(diǎn)在搜索引擎上的描述)和keywords(分類關(guān)鍵詞),所以應(yīng)該給每頁加一個(gè)meta值。比較常用的有以下幾個(gè):

  name 屬性

  1、<meta name="Generator" contect="">用以說明生成工具(如Microsoft FrontPage 4.0)等;

  2、<meta name="KEYWords" contect="">向搜索引擎說明你的網(wǎng)頁的關(guān)鍵詞;

  3、<meta name="DEscription" contect="">告訴搜索引擎你的站點(diǎn)的主要內(nèi)容;

  4、<meta name="Author" contect="你的姓名">告訴搜索引擎你的站點(diǎn)的制作的作者;

  5、<meta name="Robots" contect= "all|none|index|noindex|follow|nofollow">

  其中的屬性說明如下:

  設(shè)定為all:文件將被檢索,且頁面上的鏈接可以被查詢;

  設(shè)定為none:文件將不被檢索,且頁面上的鏈接不可以被查詢;

  設(shè)定為index:文件將被檢索;

  設(shè)定為follow:頁面上的鏈接可以被查詢;

  設(shè)定為noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;

  設(shè)定為nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。

  http-equiv屬性

  1、<meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80">和 <meta http-equiv="Content-Language" contect="zh-CN">用以說明主頁制作所使用的文字以及語言;

  又如英文是ISO-8859-1字符集,還有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集;

     2、<meta http-equiv="Refresh" contect="n;url=http://yourlink">定時(shí)讓網(wǎng)頁在指定的時(shí)間n內(nèi),跳轉(zhuǎn)到頁面http://yourlink;

  3、<meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于設(shè)定網(wǎng)頁的到期時(shí)間,一旦過期則必須到服務(wù)器上重新調(diào)用。需要注意的是必須使用GMT時(shí)間格式;

  4、<meta http-equiv="Pragma" contect="no-cache">是用于設(shè)定禁止瀏覽器從本地機(jī)的緩存中調(diào)閱頁面內(nèi)容,設(shè)定后一旦離開網(wǎng)頁就無法從Cache中再調(diào)出;

  5、<meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie設(shè)定,如果網(wǎng)頁過期,存盤的cookie將被刪除。需要注意的也是必須使用GMT時(shí)間格式;

  6、<meta http-equiv="Pics-label" contect="">網(wǎng)頁等級評定,在IE的internet選項(xiàng)中有一項(xiàng)內(nèi)容設(shè)置,可以防止瀏覽一些受限制的網(wǎng)站,而網(wǎng)站的限制級別就是通過meta屬性來設(shè)置的;

  7、<meta http-equiv="windows-Target" contect="_top">強(qiáng)制頁面在當(dāng)前窗口中以獨(dú)立頁面顯示,可以防止自己的網(wǎng)頁被別人當(dāng)作一個(gè)frame頁調(diào)用;

  8、<meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion= 50)">和<meta http-equiv="Page-Exit" contect="revealTrans(duration=20,transtion=6)">設(shè)定進(jìn)入和離開頁面時(shí)的特殊效果,這個(gè)功能即FrontPage中的“格式/網(wǎng)頁過渡”,不過所加的頁面不能夠是一個(gè)frame頁面。

以上是html頁面中meta的作用以及頁面的緩存與不緩存設(shè)置的案例分析的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI