亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

<-
Apache > HTTP Server > 文檔 > 版本2.2 > 模塊
   致謝 | 譯者聲明 | 本篇譯者:金步國(guó) | 本篇譯稿最后更新:2006年1月25日 | 獲取最新版本

Apache模塊 mod_headers

說明允許通過配置文件控制任意的HTTP請(qǐng)求和應(yīng)答頭信息
狀態(tài)擴(kuò)展(E)
模塊名headers_module
源文件mod_headers.c
兼容性RequestHeader僅在 Apache 2.0 中有效

概述

這個(gè)模塊提供了一些指令用于控制和修改HTTP請(qǐng)求頭和應(yīng)答頭。這些頭可以被合并、替換、刪除。

top

處理順序

mod_headers提供的指令幾乎可以出現(xiàn)在配置文件的任何部分。并可以封裝在配置段中以限制其作用范圍。

指令的處理順序很重要,它取決于指令本身在配置文件中的位置和所屬配置段在配置文件中的位置。下面的指令如果顛倒一下順序?qū)?huì)導(dǎo)致完全不同的結(jié)果:

RequestHeader append MirrorID "mirror 12"
RequestHeader unset MirrorID

當(dāng)前順序下,MirrorID頭不會(huì)被設(shè)置。若顛倒一下順序,MirrorID頭將被設(shè)為"mirror 12"。

top

前處理和后處理

mod_headers可以應(yīng)用在請(qǐng)求被處理之前或之后。通常的模式是"后處理",也就是在請(qǐng)求處理完畢之后、發(fā)送應(yīng)答之前設(shè)置應(yīng)答頭。[原文:when Request Headers are set immediately before running the content generator and Response Headers just as the response is sent down the wire.]在實(shí)際工作的服務(wù)器上應(yīng)當(dāng)始終使用"后處理"模式。

"前處理"模式應(yīng)當(dāng)僅僅作為開發(fā)者使用的一種測(cè)試/調(diào)試輔助工具。可以在指令中使用early關(guān)鍵字啟用"前處理"模式,此時(shí)將在處理請(qǐng)求之前設(shè)置請(qǐng)求頭。這樣就可以模擬各種不同的請(qǐng)求以協(xié)助調(diào)試。

由于"前處理"模式的指令在將URL映射到文件系統(tǒng)之前就生效了,不能依賴于所請(qǐng)求的路徑。所以"前處理"模式的指令只能用在主服務(wù)器和虛擬主機(jī)部分的配置中,而不能用于<Directory><Location>配置段中。

top

示例

  1. 將所有以"TS"開頭的請(qǐng)求頭復(fù)制到應(yīng)答頭中:

    Header echo ^TS

  2. 在應(yīng)答中添加一個(gè)MyHeader頭來包含服務(wù)端接受到請(qǐng)求的時(shí)間戳和經(jīng)過多少時(shí)間以后才完成對(duì)該請(qǐng)求的處理并作出應(yīng)答。這個(gè)頭可以讓客戶端知道瓶頸位于服務(wù)端還是位于服務(wù)端和客戶端之間的線路。

    Header add MyHeader "%D %t"

    上面的設(shè)置將會(huì)添加如下應(yīng)答頭內(nèi)容:

    MyHeader: D=3775428 t=991424704447256

  3. 向Joe問好(Hello):

    Header add MyHeader "Hello Joe. It took %D microseconds \
    for Apache to serve this request."

    上面的設(shè)置將會(huì)添加如下應(yīng)答頭內(nèi)容:

    MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request.

  4. 當(dāng)且僅當(dāng)"MyRequestHeader"出現(xiàn)在請(qǐng)求頭中的時(shí)候才在應(yīng)答中發(fā)送"MyHeader"頭。這個(gè)對(duì)根據(jù)特定的客戶端構(gòu)造特定的應(yīng)答頭很有用。注意,下面的例子需要mod_setenvif模塊的支持。

    SetEnvIf MyRequestHeader value HAVE_MyRequestHeader
    Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader

    如果請(qǐng)求中出現(xiàn)"MyRequestHeader: value"頭,應(yīng)答中將會(huì)包含下面的頭:

    MyHeader: D=3775428 t=991424704447256 mytext

top

Header 指令

說明配置HTTP應(yīng)答頭
語(yǔ)法Header [condition] set|append|add|unset|echo header [value] [early|env=[!]variable]
作用域server config, virtual host, directory, .htaccess
覆蓋項(xiàng)FileInfo
狀態(tài)擴(kuò)展(E)
模塊mod_headers

這個(gè)指令可以替換、合并、刪除HTTP應(yīng)答頭。應(yīng)答頭緊跟在內(nèi)容處理器和輸出過濾器完工之后生成,這時(shí)候才能對(duì)頭進(jìn)行修改。

condition選項(xiàng)可以是onsuccessalways 。它決定了將對(duì)哪個(gè)內(nèi)部頭(internal header)表進(jìn)行操作。onsuccess表示"2xx"狀態(tài)碼,always表示所有狀態(tài)碼(包含"2xx")。特別地,如果你想撤銷由某個(gè)模塊設(shè)置的頭,你應(yīng)當(dāng)做做試驗(yàn),以找到是那個(gè)表產(chǎn)生的影響。

該指令執(zhí)行的動(dòng)作是由第二個(gè)參數(shù)決定的。這個(gè)參數(shù)取值范圍如下:

set
設(shè)置新的或修改已經(jīng)存在的同名應(yīng)答頭。value可以是一個(gè)格式字符串。
append
向同名應(yīng)答頭添加新內(nèi)容而不修改原來已經(jīng)存在的舊內(nèi)容。當(dāng)向一個(gè)已經(jīng)存在的頭添加新值時(shí),將用逗號(hào)與原來已經(jīng)存在的舊值分開。這是向HTTP頭賦以多個(gè)值的標(biāo)準(zhǔn)方法。
add
向應(yīng)答中添加新的頭而不修改原來已經(jīng)存在的頭(即使同名)。這將可能導(dǎo)致有兩個(gè)或更多的應(yīng)答頭具有相同的名字,從而導(dǎo)致意想不到的后果,所以通常不使用這種方法而用append來代替它。
unset
去除應(yīng)答中同名的頭(若存在的話)。如果有多個(gè)頭同名,則會(huì)被全部去除。value必須被省略。
echo
將請(qǐng)求中同名的頭復(fù)制到應(yīng)答中。header可以是一個(gè)正則表達(dá)式。value必須被省略。

這個(gè)參數(shù)后面必須要跟一個(gè)header名字(結(jié)尾的冒號(hào)可要可不要)。set, append, add, unset是大小寫無關(guān)的。用于echoheader是大小寫敏感的,并且可以是一個(gè)正則表達(dá)式。

對(duì)于add, append, set來說,value是第三個(gè)參數(shù)。如果value包含空格則必須用雙引號(hào)(")括起來。value可以是一個(gè)普通字符串或包含格式說明符的字符串,value支持下列格式字符串:

格式描述
%%百分號(hào)(%)
%t接收到請(qǐng)求的微秒時(shí)間戳(相對(duì)于1970-1-1 00:00:00 UCT),外加一個(gè)"t="前綴。
%D從接收到請(qǐng)求到完成對(duì)該請(qǐng)求的處理并作出應(yīng)答共花費(fèi)了多少微秒,外加一個(gè)"D="前綴。
%{FOOBAR}e環(huán)境變量FOOBAR的內(nèi)容
%{FOOBAR}sSSL環(huán)境變量FOOBAR的內(nèi)容(如果啟用了mod_ssl)

注意

"%s"格式符僅在Apache 2.1及以后的版本中可用。它可以代替"%e"以避免"SSLOptions +StdEnvVars"帶來的額外開銷。如果因?yàn)閯e的原因必須開啟"SSLOptions +StdEnvVars",那么"%e"將比"%s"更加合適。

Header后面可以跟一個(gè)用于指定生效條件的額外參數(shù)(或者用early表示"前處理")。如果在"env=..."參數(shù)中指定的環(huán)境變量存在(或用"env=!..."表示不存在),那么Header指令指定的動(dòng)作將會(huì)生效,否則將不會(huì)生效。

除非使用early模式,否則Header指令將在應(yīng)答最后被發(fā)送到網(wǎng)絡(luò)前處理。這意味著可以設(shè)置和改寫絕大多數(shù)應(yīng)答頭,除了自己添加的應(yīng)答頭。

top

RequestHeader 指令

說明配置HTTP請(qǐng)求頭
語(yǔ)法RequestHeader set|append|add|unset header [value] [early|env=[!]variable]
作用域server config, virtual host, directory, .htaccess
覆蓋項(xiàng)FileInfo
狀態(tài)擴(kuò)展(E)
模塊mod_headers
兼容性僅在 Apache 2.0 中有效

這個(gè)指令可以替換、合并、刪除HTTP應(yīng)答頭。請(qǐng)求頭將會(huì)在內(nèi)容處理器運(yùn)行之前被修改。修改的動(dòng)作由第一個(gè)參數(shù)決定,其取值范圍如下:

set
設(shè)置新的或修改已經(jīng)存在的同名請(qǐng)求頭。
append
向同名請(qǐng)求頭添加新內(nèi)容而不修改原來已經(jīng)存在的舊內(nèi)容。當(dāng)向一個(gè)已經(jīng)存在的頭添加新值時(shí),將用逗號(hào)與原來已經(jīng)存在的舊值分開。這是向HTTP頭賦以多個(gè)值的標(biāo)準(zhǔn)方法。
add
向請(qǐng)求中添加新的頭而不修改原來已經(jīng)存在的頭(即使同名)。這將可能導(dǎo)致有兩個(gè)或更多的請(qǐng)求頭具有相同的名字,從而導(dǎo)致意想不到的后果,所以通常不使用這種方法而用append來代替它。
unset
去除請(qǐng)求中同名的頭(若存在的話)。如果有多個(gè)頭同名,則會(huì)被全部去除。value必須被省略。

這些參數(shù)后面必須要跟一個(gè)header名(結(jié)尾的冒號(hào)可要可不要,且大小寫無關(guān))。對(duì)于add, append, set來說,value是第三個(gè)參數(shù)。如果value包含空格則必須用雙引號(hào)(")括起來。對(duì)于unset來說則不需要value參數(shù)。value可以是一個(gè)普通字符串或包含格式說明符的字符串,格式字符串的用法與Header指令一樣。

RequestHeader后面可以跟一個(gè)用于指定生效條件的額外參數(shù)(或者用early表示"前處理")。如果在"env=..."參數(shù)中指定的環(huán)境變量存在(或用"env=!..."表示不存在),那么RequestHeader指令指定的動(dòng)作將會(huì)生效,否則將不會(huì)生效。

除非使用early模式,否則RequestHeader將在請(qǐng)求被處理之前生效。這樣,由瀏覽器和Apache輸入過濾器產(chǎn)生的請(qǐng)求頭都可以被該指令處理。