?? aspcool_com--八、設置http應答頭.htm
字號:
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=csharp"
target=_blank>C#.NET教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=vbnet"
target=_blank>VB.NET教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=uml"
target=_blank>UML教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=php"
target=_blank>PHP教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=jsp"
target=_blank>JSP教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=ejb"
target=_blank>EJB教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=xml"
target=_blank>XML教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=linux"
target=_blank>LINUX教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A
href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=Script腳本"
target=_blank>Script腳本</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=網頁教程"
target=_blank>網頁教程</A><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://www.aspcool.com/lanmu/browse.asp?bbsuser=圖形處理"
target=_blank>圖形處理</A><BR><BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_01.gif" align=absMiddle> <IMG
height=16 src="ASPcool_com--八、設置HTTP應答頭.files/folder_02.gif" width=16
align=absMiddle>技術討論區<BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/" target=_blank>論壇首頁</A>
<BR> <IMG src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif"
align=absMiddle border=0><A
href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=12"
target=_blank>ASP論壇</A> <BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=10"
target=_blank>ASP.NET論壇</A> <BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=15"
target=_blank>Winform論壇</A> <BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=14"
target=_blank>源碼交流</A> <BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=13"
target=_blank>軟件工程</A> <BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=17"
target=_blank>前沿陣地</A> <BR> <IMG
src="ASPcool_com--八、設置HTTP應答頭.files/line_05.gif" align=absMiddle
border=0><A href="http://bbs.aspcool.com/ShowForum.aspx?ForumID=11"
target=_blank>站務討論</A> <BR><BR><BR>
<CENTER><BR>
<TABLE cellSpacing=0 cellPadding=0 align=center bgColor=white border=0>
<TBODY>
<TR>
<TD></TD></TR></TBODY></TABLE><BR>
<SCRIPT>var ally263_id='958';var ally263_no='a0a0';
var ally263_width='120';var ally263_height='300';</SCRIPT>
<SCRIPT src="ASPcool_com--八、設置HTTP應答頭.files/ally.js"></SCRIPT>
</CENTER></TD>
<TD> </TD>
<TD vAlign=top width=589>
<TABLE cellSpacing=1 cellPadding=0 width="100%" bgColor=#ffffcc
border=0><TBODY>
<TR>
<TD width="50%" bgColor=#ffcc99 height=24><IMG
src="ASPcool_com--八、設置HTTP應答頭.files/1.gif"> 八、設置HTTP應答頭</TD></TR>
<TR>
<TD colSpan=3>作者: 仙人掌工作室 <STRONG><FONT
color=#575757>www.ASPCool.com</FONT></STRONG> 時間:2000-11-8
15:30:27 閱讀次數:<STRONG>21747</STRONG> <BR></TD></TR>
<TR>
<TD width="100%" colSpan=3><BR>
<P>
<TABLE align=right>
<TBODY>
<TR>
<TD>
<SCRIPT language=JavaScript
src="ASPcool_com--八、設置HTTP應答頭.files/ads.htm"
type=text/JavaScript> </SCRIPT>
</TD></TR></TBODY></TABLE>
<STYLE type=text/css>BODY {
FONT-SIZE: 12px; FONT-FAMILY: Verdana,Arial,宋體
}
TD {
FONT-SIZE: 12px; COLOR: #000000; FONT-FAMILY: Verdana,Arial,宋體
}
A:link {
COLOR: #000000; TEXT-DECORATION: none
}
A:visited {
COLOR: #000000; TEXT-DECORATION: none
}
A:active {
COLOR: #c50000; TEXT-DECORATION: none
}
A:hover {
COLOR: #c50000; TEXT-DECORATION: underline
}
.a {
COLOR: #ffffff
}
.a1 {
FONT-SIZE: 14px; COLOR: #2c7494
}
.link_topic {
FONT-SIZE: 18px; TEXT-DECORATION: none
}
.formitem {
BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 12pt; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid; BACKGROUND-COLOR: #ffffff
}
</STYLE>
八、設置HTTP應答頭 <BR> 作 者 : 仙人掌工作室
<BR> <BR> <BR> 8.1 HTTP應答頭概述
<BR> <BR>
Web服務器的HTTP應答一般由以下幾項構成:一個狀態行,一個或多個應答頭,一個空行,內容文檔。設置HTTP應答頭往往和設置狀態行中的狀態代碼結合起來。例如,有好幾個表示“文檔位置已經改變”的狀態代碼都伴隨著一個Location頭,而401(Unauthorized)狀態代碼則必須伴隨一個WWW-Authenticate頭。
<BR> <BR>
然而,即使在沒有設置特殊含義的狀態代碼時,指定應答頭也是很有用的。應答頭可以用來完成:設置Cookie,指定修改日期,指示瀏覽器按照指定的間隔刷新頁面,聲明文檔的長度以便利用持久HTTP連接,……等等許多其他任務。
<BR> <BR>
設置應答頭最常用的方法是HttpServletResponse的setHeader,該方法有兩個參數,分別表示應答頭的名字和值。和設置狀態代碼相似,設置應答頭應該在發送任何文檔內容之前進行。
<BR> <BR>
setDateHeader方法和setIntHeadr方法專門用來設置包含日期和整數值的應答頭,前者避免了把Java時間轉換為GMT時間字符串的麻煩,后者則避免了把整數轉換為字符串的麻煩。
<BR> <BR>
HttpServletResponse還提供了許多設置常見應答頭的簡便方法,如下所示: <BR>
<BR> setContentType:設置Content-Type頭。大多數Servlet都要用到這個方法。
<BR> setContentLength:設置Content-Length頭。對于支持持久HTTP連接的瀏覽器來說,這個函數是很有用的。
<BR> addCookie:設置一個Cookie(Servlet
API中沒有setCookie方法,因為應答往往包含多個Set-Cookie頭)。
<BR> 另外,如上節介紹,sendRedirect方法設置狀態代碼302時也會設置Location頭。
<BR> 8.2 常見應答頭及其含義 <BR> <BR>
有關HTTP頭詳細和完整的說明,請參見http://www.w3.org/Protocols/ 規范。 <BR>
<BR> 應答頭 說明 <BR> Allow
服務器支持哪些請求方法(如GET、POST等)。 <BR> Content-Encoding
文檔的編碼(Encode)方法。只有在解碼之后才可以得到Content-Type頭指定的內容類型。利用gzip壓縮文檔能夠顯著地減少HTML文檔的下載時間。Java的GZIPOutputStream可以很方便地進行gzip壓縮,但只有Unix上的Netscape和Windows上的IE
4、IE
5才支持它。因此,Servlet應該通過查看Accept-Encoding頭(即request.getHeader("Accept-Encoding"))檢查瀏覽器是否支持gzip,為支持gzip的瀏覽器返回經gzip壓縮的HTML頁面,為其他瀏覽器返回普通頁面。
<BR> Content-Length
表示內容長度。只有當瀏覽器使用持久HTTP連接時才需要這個數據。如果你想要利用持久連接的優勢,可以把輸出文檔寫入ByteArrayOutputStram,完成后查看其大小,然后把該值放入Content-Length頭,最后通過byteArrayStream.writeTo(response.getOutputStream()發送內容。
<BR> Content-Type
表示后面的文檔屬于什么MIME類型。Servlet默認為text/plain,但通常需要顯式地指定為text/html。由于經常要設置Content-Type,因此HttpServletResponse提供了一個專用的方法setContentTyep。
<BR> Date 當前的GMT時間。你可以用setDateHeader來設置這個頭以避免轉換時間格式的麻煩。
<BR> Expires 應該在什么時候認為文檔已經過期,從而不再緩存它?
<BR> Last-Modified
文檔的最后改動時間。客戶可以通過If-Modified-Since請求頭提供一個日期,該請求將被視為一個條件GET,只有改動時間遲于指定時間的文檔才會返回,否則返回一個304(Not
Modified)狀態。Last-Modified也可用setDateHeader方法來設置。
<BR> Location
表示客戶應當到哪里去提取文檔。Location通常不是直接設置的,而是通過HttpServletResponse的sendRedirect方法,該方法同時設置狀態代碼為302。
<BR> Refresh
表示瀏覽器應該在多少時間之后刷新文檔,以秒計。除了刷新當前文檔之外,你還可以通過setHeader("Refresh", "5;
URL=http://host/path")讓瀏覽器讀取指定的頁面。
<BR> 注意這種功能通常是通過設置HTML頁面HEAD區的<META HTTP-EQUIV="Refresh"
CONTENT="5;URL=http://host/path">實現,這是因為,自動刷新或重定向對于那些不能使用CGI或Servlet的HTML編寫者十分重要。但是,對于Servlet來說,直接設置Refresh頭更加方便。
<BR>
<BR> 注意Refresh的意義是“N秒之后刷新本頁面或訪問指定頁面”,而不是“每隔N秒刷新本頁面或訪問指定頁面”。因此,連續刷新要求每次都發送一個Refresh頭,而發送204狀態代碼則可以阻止瀏覽器繼續刷新,不管是使用Refresh頭還是<META
HTTP-EQUIV="Refresh" ...>。 <BR>
<BR> 注意Refresh頭不屬于HTTP
1.1正式規范的一部分,而是一個擴展,但Netscape和IE都支持它。 <BR>
<BR> Server 服務器名字。Servlet一般不設置這個值,而是由Web服務器自己設置。
<BR> Set-Cookie
設置和頁面關聯的Cookie。Servlet不應使用response.setHeader("Set-Cookie",
...),而是應使用HttpServletResponse提供的專用方法addCookie。參見下文有關Cookie設置的討論。
<BR> WWW-Authenticate
客戶應該在Authorization頭中提供什么類型的授權信息?在包含401(Unauthorized)狀態行的應答中這個頭是必需的。例如,response.setHeader("WWW-Authenticate",
"BASIC realm=\"executives\"")。
<BR> 注意Servlet一般不進行這方面的處理,而是讓Web服務器的專門機制來控制受密碼保護頁面的訪問(例如.htaccess)。
<BR> <BR> <BR>
<BR> 8.3 實例:內容改變時自動刷新頁面 <BR>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -