Http協議規範及格式

HTTP(HyperTextTransferProtocol)是超文本傳輸協議的縮寫,它用於傳送WWW方式的數據,關於HTTP協議的詳細內容請參考RFC2616。HTTP協議採用了請求/響應模型。客戶端向服務器發送一個請求,請求頭包含請求的方法、URI、協議版本、以及包含請求修飾符、客戶信息和內容的相似於MIME的消息結構。服務器以一個狀態行做爲響應,相應的內容包括消息協議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內容。

一般HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個只是頭域結束的空行和可選的消息體組成。HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每一個頭域由一個域名,冒號(:)和域值三部分組成。域名是大小寫無關的,域值前能夠添加任何數量的空格符,頭域能夠被擴展爲多行,在每行開始處,使用至少一個空格或製表符。

通用頭域

通用頭域包含請求和響應消息都支持的頭域,通用頭域包含Cache-Control、Connection、Date、Pragma、Transfer- Encoding、Upgrade、Via。對通用頭域的擴展要求通信雙方都支持此擴展,若是存在不支持的通用頭域,通常將會做爲實體頭域處理。下面簡單介紹幾個在UPnP消息中使用的通用頭域。

Cache-Control頭域

Cache-Control指定請求和響應遵循的緩存機制。在請求消息或響應消息中設置Cache-Control並不會修改另外一個消息處理過程當中的緩存處理過程。請求時的緩存指令包括no- cache、no-store、max-age、max-stale、min-fresh、only-if-cached,響應消息中的指令包括 public、private、no-cache、no-store、no-transform、must-revalidate、proxy- revalidate、max-age。各個消息中的指令含義以下:

Public指示響應可被任何緩存區緩存。

Private指示對於單個用戶的整個或部分響應消息,不能被共享緩存處理。這容許服務器僅僅描述當用戶的部分響應消息,此響應消息對於其餘用戶的請求無效。

no-cache指示請求或響應消息不能緩存

no-store用於防止重要的信息被無心的發佈。在請求消息中發送將使得請求和響應消息都不使用緩存。

max-age指示客戶機能夠接收生存期不大於指定時間(以秒爲單位)的響應。

min-fresh指示客戶機能夠接收響應時間小於當前時間加上指定時間的響應。

max-stale指示客戶機能夠接收超出超時期間的響應消息。若是指定max-stale消息的值,那麼客戶機能夠接收超出超時期指定值以內的響應消息。

Date頭域

Date頭域表示消息發送的時間,時間的描述格式由rfc822定義。例如,Date:Mon,31Dec200104:25:57GMT。Date描述的時間表示世界標準時,換算成本地時間,須要知道用戶所在的時區。

Pragma頭域

Pragma頭域用來包含實現特定的指令,最經常使用的是Pragma:no-cache。在HTTP/1.1協議中,它的含義和Cache-Control:no-cache相同。

請求消息

請求消息的第一行爲下面的格式:

MethodSPRequest- URISPHTTP-VersionCRLFMethod表示對於Request-URI完成的方法,這個字段是大小寫敏感的,包括OPTIONS、 GET、HEAD、POST、PUT、Delete、TRACE。方法GET和HEAD應該被全部的通用WEB服務器支持,其餘全部方法的實現是可選的。 GET方法取回由Request-URI標識的信息。HEAD方法也是取回由Request-URI標識的信息,只是能夠在響應時,不返回消息體。 POST方法能夠請求服務器接收包含在請求中的實體信息,能夠用於提交表單,向新聞組、BBS、郵件羣組和數據庫發送消息。

SP表示空格。Request-URI遵循URI格式,在此字段爲星號(*)時,說明請求並不用於某個特定的資源地址,而是用於服務器自己。HTTP- Version表示支持的HTTP版本,例如爲HTTP/1.1。CRLF表示換行回車符。請求頭域容許客戶端向服務器傳遞關於請求或者關於客戶機的附加信息。請求頭域可能包含下列字段Accept、Accept-Charset、Accept-Encoding、Accept-Language、 Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If- Range、If-Range、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、 Range、Referer、User-Agent。對請求頭域的擴展要求通信雙方都支持,若是存在不支持的請求頭域,通常將會做爲實體頭域處理。

典型的請求消息:

GET http://download.microtool.de:80/somedata.exe

Host:download.microtool.de

Accept:*/*

Pragma:no-cache

Cache-Control:no-cache

Referer:http://download.microtool.de/

User-Agent:Mozilla/4.04[en](Win95;I;Nav)

Range:bytes=554554-

上例第一行表示HTTP客戶端(多是瀏覽器、下載程序)經過GET方法得到指定URL下的文件。棕色的部分表示請求頭域的信息,綠色的部分表示通用頭部分。

Host頭域

Host頭域指定請求資源的Intenet主機和端口號,必須表示請求url的原始服務器或網關的位置。HTTP/1.1請求必須包含主機頭域,不然系統會以400狀態碼返回。

Referer頭域

Referer 頭域容許客戶端指定請求uri的源資源地址,這能夠容許服務器生成回退鏈表,可用來登錄、優化cache等。他也容許廢除的或錯誤的鏈接因爲維護的目的被追蹤。若是請求的uri沒有本身的uri地址,Referer不能被髮送。若是指定的是部分uri地址,則此地址應該是一個相對地址。

Range頭域

Range頭域能夠請求實體的一個或者多個子範圍。例如,

表示頭500個字節:bytes=0-499

表示第二個500字節:bytes=500-999

表示最後500個字節:bytes=-500

表示500字節之後的範圍:bytes=500-

第一個和最後一個字節:bytes=0-0,-1

同時指定幾個範圍:bytes=500-600,601-999

可是服務器能夠忽略此請求頭,若是無條件GET包含Range請求頭,響應會以狀態碼206(PartialContent)返回而不是以200(OK)。

User-Agent頭域

User-Agent頭域的內容包含發出請求的用戶信息。

響應消息

響應消息的第一行爲下面的格式:

HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF

HTTP- Version表示支持的HTTP版本,例如爲HTTP/1.1。Status-Code是一個三個數字的結果代碼。Reason-Phrase給 Status-Code提供一個簡單的文本描述。Status-Code主要用於機器自動識別,Reason-Phrase主要用於幫助用戶理解。 Status-Code的第一個數字定義響應的類別,後兩個數字沒有分類的做用。第一個數字可能取5個不一樣的值:

1xx:信息響應類,表示接收到請求而且繼續處理

2xx:處理成功響應類,表示動做被成功接收、理解和接受

3xx:重定向響應類,爲了完成指定的動做,必須接受進一步處理

4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行

5xx:服務端錯誤,服務器不能正確執行一個正確的請求

響應頭域容許服務器傳遞不能放在狀態行的附加信息,這些域主要描述服務器的信息和Request-URI進一步的信息。響應頭域包含Age、 Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW- Authenticate。對響應頭域的擴展要求通信雙方都支持,若是存在不支持的響應頭域,通常將會做爲實體頭域處理。

典型的響應消息:

HTTP/1.0200OK

Date:Mon,31Dec200104:25:57GMT

Server:Apache/1.3.14(Unix)

Content-type:text/html

Last-modified:Tue,17Apr200106:46:28GMT

Etag:"a030f020ac7c01:1e9f"

Content-length:39725426

Content-range:bytes554554-40279979/40279980

上例第一行表示HTTP服務端響應一個GET方法。棕色的部分表示響應頭域的信息,綠色的部分表示通用頭部分,紅色的部分表示實體頭域的信息。

Location響應頭

Location響應頭用於重定向接收者到一個新URI地址。

Server響應頭

Server響應頭包含處理請求的原始服務器的軟件信息。此域能包含多個產品標識和註釋,產品標識通常按照重要性排序。

實體

請求消息和響應消息均可以包含實體信息,實體信息通常由實體頭域和實體組成。實體頭域包含關於實體的原信息,實體頭包括Allow、Content- Base、Content-Encoding、Content-Language、Content-Length、Content-Location、 Content-MD五、Content-Range、Content-Type、Etag、Expires、Last-Modified、 extension-header。extension-header容許客戶端定義新的實體頭,可是這些域可能沒法未接受方識別。實體能夠是一個通過編碼的字節流,它的編碼方式由Content-Encoding或Content-Type定義,它的長度由Content-Length或 Content-Range定義。

Content-Type實體頭

Content-Type實體頭用於向接收方指示實體的介質類型,指定HEAD方法送到接收方的實體介質類型,或GET方法發送的請求介質類型Content-Range實體頭

Content-Range實體頭用於指定整個實體中的一部分的插入位置,他也指示了整個實體的長度。在服務器向客戶返回一個部分響應,它必須描述響應覆蓋的範圍和整個實體長度。通常格式:

Content-Range:bytes-unitSPfirst-byte-pos-last-byte-pos/entity-legth

例如,傳送頭500個字節次字段的形式:Content-Range:bytes0-499/1234若是一個http消息包含此節(例如,對範圍請求的響應或對一系列範圍的重疊請求),Content-Range表示傳送的範圍,Content-Length表示實際傳送的字節數。

Last-modified實體頭

Last-modified實體頭指定服務器上保存內容的最後修訂時間。php

 

 

 

HTTP協議(RFC2616)方法定義html

OPTIONS

OPTIONS 方法表示在由 Request-URI 標識的請求/響應鏈上關於有效通迅選項信息的請
求。該方法容許客戶端判斷與某個資源相關的選項和/或需求或者服務器的能力,而不須要
採用資源行爲或發起資源獲取。 
 
    該方法的響應不能緩存。 
 
    若是OPTIONS請求包括實體(如由 Content-Length或 Transfer-Encoding的存在表示),
這時媒體類型必須經過 Content-Type 域表示。儘管本規範沒有定義該實體的用法,未來的
HTTP 擴展可能使用 OPTIONS 消息體來更詳細地查詢服務器的信息。服務器不支持該擴展
能夠丟棄該請求消息體。 
 
    若是 Request-URI 是星號(「*」),OPTIONS 請求一般試圖應用於服務器而不是特定的
資源。因爲服務器的通迅選項通常由資源決定,因此「*」請求只做爲「ping」或「no-op」
類型的方法有用;它沒有任何做用,除了容許客戶端測試服務器的能力。例如,可用來測試
HTTP/1.1 代理的一致性(或缺乏因素)。 
 
    若是 Request-URI不是星號,OPTIONS請求只應用於與該資源通迅時的有效選項。 
 
     200 響應應該包括任何頭部域來表示服務器實現和可應用到該資源的可選特性(如
Allow),可能包括該規範沒有定義的擴展。若是有響應消息體,則應該還包括通迅選項的信
息。本規範沒有定義該消息體的格式,但可能在未來擴展 HTTP時定義。內容協商可用於選
擇適當的響應格式。若是不包括響應消息體,則響應必須包括域值爲「0」的 Content-Length 
域。 
 
     Max-Forwards 請求頭部域可能用於請求鏈中定位特定代理。當代理收到關於容許請求
轉發的absoluteURI的OPTIONS請求時, 代理必須檢查Max-Forwards域。 若是Max-Forwards
域值爲0(「0」 ),則代理不能轉發該消息;取而代之,代理應該以它本身的通迅選項來響應。
若是 Max-Forwards 域值是大於 0 的整數,代理在轉發該請求時必須將域值減一。若是請求
中不存在 Max-Forwards域,則轉發的請求中不能包括Max-Forwards域。mysql

GET

    GET 方法即獲取由 Request-URI 標識的任何信息(以實體的形式)。若是 Request-URI
引用某個數據處理過程,則應該以它產生的數據做爲在響應中的實體,而不是該過程的源代
碼文本,除非該過程碰巧輸出該文本。web

    若是請求消息包括 If-Modified-Since、If-Unmodified-Since、If-Match、If-None-Match或
者If-Range頭部域,則GET方法的語義變爲「條件GET」。條件 GET方法請求只傳輸在條
件頭部域描述情形下的實體。條件 GET 方法試圖經過容許刷新緩存的實體而不須要屢次請
求或傳輸客戶端已經擁有的數據來減小非必要的網絡使用。 
    若是請求消息包括 Range頭部域,則 GET方法的語義變爲「局部 GET」。局部 GET請
求只需傳輸實體的某部分。sql

HEAD

    除了服務器不能在響應中返回消息體,HEAD 方法與 GET 相同。HEAD 請求的響應中
的 HTTP 頭部中包含的元信息應該與 GET 請求發送的響應中的信息相同。該方法可用來獲
取請求暗示實體的元信息, 而不須要傳輸實體自己。 該方法經常使用來測試超文本連接的有效性、
可用性和最近的修改。 
 
    當響應中包含的信息可用於更新先前從該資源緩存的實體時, HEAD 請求的響應多是
可緩衝的。若是新的域值代表該緩衝的實體與當前實體不一樣(如可經過 Content-Length、
Content-MD五、ETag或Last-Modified的區別來表示),這時緩衝服務器必須將該緩存實體做
爲過時的。數據庫

POST

     POST 方法用來請求原始服務器接受請求中封裝的實體做爲從屬於請求行中的
Request-URI標識的副屬。POST設計容許完成下列功能的統一方法: 
 
     * 註解存在資源; 
     * 上傳消息到論壇、新聞組或類似的討論組; 
     * 向數據處理過程提供數據塊,如遞交表單的結果; 
     * 經過追加操做來擴展數據庫。 
 
     POST 方法執行的實際功能由服務器決定,且一般取決於 Request-URI。上傳的實體從
屬於該URI,經過文件從屬於包含它的目錄,新的論文從屬於它上傳的新聞組,或記錄從屬
於數據庫的方式。 
 
     POST 方法執行的行爲可能不致使經過 URI 可以標識的某個資源。在這種狀況下,200
(OK)或 204(No Content)都是適合的響應狀態。這取決於描述結果的響應是否包括實體。  
 
    若是原始服務器建立了資源,響應應該是 201(Created),且包含描述請求狀態的實體,瀏覽器

和新資源的引用,和Location頭部。緩存

 
    該方法的響應不能緩存,除非響應包括適當的Cache-Control或 Expires頭部域。然而,
303(See Other)響應可以用來引導用戶代理獲取可緩存的資源。服務器

PUT

     PUT方法請求以提供的Request-URI存儲封裝的實體。若是 Request-URI引用已經存在
的資源,該封裝實體應該被認做原始服務器存儲的修改版本。若是 Request-URI沒有指向已
存在的資源, 且該URI能夠被請求的用戶代理定義爲新的資源, 則原始服務器能夠用該 URI
建立資源。若是建立了新的資源,則原始服務器必須經過 201(Created)響應提示用戶代理。
若是修改了已存在的資源,則應該發送200(OK)或 204(No Content)響應代碼來表示成
功完成了請求。若是不能按 Request-URI建立或修改資源,則應該給出適當的錯誤響應以反
映出問題的性質。實體的接受方不能乎略任何不理解或沒有實現的 Content-*(如
Content-Range)頭部,在這種狀況下必須返回 501(Not Implemented)響應。 
 
    若是請求經過緩衝服務器且Request-URI標識出一個或多個緩衝的實體,則應該認爲這
些實體過時了。該方法的響應不可緩存。 
 
     POST和PUT請求間的基本區別反映在 Request-URI的不一樣意義。POST請求中 URI標
識的資源將處理封裝的實體。該資源多是數據接收過程、其它協議的網關或接受註解的獨
立實體。與此對應,PUT請求中的URI標識請求封裝的實體——用戶代理知道該 URI是目
標且服務器不能試圖將該請求應用到其它資源上。 若是服務器但願該請求應用到不一樣的 URI
上,則它必須發送301(Moved Permanently)請求;這時客戶代理能夠本身決定是否要重定
向該請求。 
 
    能夠用許多不一樣的 URI 標識同個資源。例如,一篇文章能夠有標識爲「當前版本」的
URI,它獨立於標識每一個特別版本的 URI。在這種狀況下,使用通用 URI 的 PUT 請求可能
形成原始服務器定義的一些不一樣URI的結果。 
 
     HTTP/1.1 沒有定義PUT方法如何影響原始服務器的狀態。 
 
    除了其它特殊實體頭部的規定,PUT 請求中的實體頭部應該應用到 PUT 建立或修改的
資源上。cookie

DELETE

     DELETE 方法請求原始服務器刪除Request-URI 標識的資源。原始服務器可在人爲干涉

下(或其它意思)屏閉該方法。客戶端不能確保該操做已經提交,即便原始服務器發出的狀
態碼代表動做已經成功完成也如此。然而,在給出響應的時候,服務器不該該表示成功,除
非它試圖刪除該資源或將它移動到不可訪問的位置。 
 
    若是響應包含描述狀態的實體,成功響應應該是200(OK)。若是動做沒有實施,則是
202(Accepted)。若是動做已經實施但響應不包含實體,則是 204(No Content)。 
 
    若是請求經過緩衝服務器,且Request-URI標識一個或多個當前緩存的實體,則應該認
爲這些實體已通過期。該方法的響應不可緩存。

TRACE

     TRACE 方法用於引發遠程的,該請求消息的應用層回射。請求的最終接收者應該反射
200(OK)響應,並以該消息做爲客戶端回收消息的實體。最終接收者是原始服務器或第一
個收到請求中的Max-Forwards值爲0(0)的代理或網關。TRACE 請求不能
包括實體。 
 
     TRACE 容許客戶端看見請求鏈上的另外一端收到了什麼,而後使用該數據做爲測試或診
斷信息。Via 頭部域的值有特殊做用,將它做爲請求鏈路徑。使用Max-Forwards
頭部域容許客戶端限制請求鏈的長度,這對於測試無限循環轉發消息的代理鏈很是有用。 
 
    如請求有效,則響應應該在實體中包含整個請求消息,設置 Content-Type 爲
「message/http」 。該方法的響應不能緩存。

CONNECT

    規範保留 CONNECT 方法名。該方法用於代理,使之可以動態切換隧道(例如 SSL
隧道)。

 

 

 

Requests

 

Field name↓ Description Example
Accept Content-Types that are acceptable Accept: text/plain
Accept-Charset Character sets that are acceptable Accept-Charset: utf-8
Accept-Encoding Acceptable encodings Accept-Encoding: <compress | gzip | identity>
Accept-Language Acceptable languages for response Accept-Language: en-US
Accept-Ranges Allows the server to indicate its acceptance of range requests for a resource Accept-Ranges: bytes
Authorization Authentication credentials for HTTP authentication Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control Used to specify directives that MUST be obeyed by all caching mechanisms along the request/response chain Cache-Control: no-cache
Connection What type of connection the user-agent would prefer Connection: close
Cookie an HTTP cookie previously sent by the server with Set-Cookie (below) Cookie: $Version=1; Skin=new;
Content-Length The length of the request body in octets (8-bit bytes) Content-Length: 348
Content-Type The mime type of the body of the request (used with POST and PUT requests) Content-Type: application/x-www-form-urlencoded
Date The date and time that the message was sent Date: Tue, 15 Nov 1994 08:12:31 GMT
Expect Indicates that particular server behaviors are required by the client Expect: 100-continue
From The email address of the user making the request From: user@email.com
Host The domain name of the server (for virtual hosting), mandatory since HTTP/1.1 Host: en.wikipedia.org
If-Match Only perform the action if the client supplied entity matches the same entity on the server. This is mainly for methods like PUT to only update a resource if it has not been modified since the user last updated it. If-Match: "737060cd8c284d8af7ad3082f209582d"
If-Modified-Since Allows a 304 Not Modified to be returned if content is unchanged If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
If-None-Match Allows a 304 Not Modified to be returned if content is unchanged, see HTTP ETag If-None-Match: "737060cd8c284d8af7ad3082f209582d"
If-Range If the entity is unchanged, send me the part(s) that I am missing; otherwise, send me the entire new entity If-Range: "737060cd8c284d8af7ad3082f209582d"
If-Unmodified-Since Only send the response if the entity has not been modified since a specific time. If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Max-Forwards Limit the number of times the message can be forwarded through proxies or gateways. Max-Forwards: 10
Pragma Implementation-specific headers that may have various effects anywhere along the request-response chain. Pragma: no-cache
Proxy-Authorization Authorization credentials for connecting to a proxy. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range Request only part of an entity. Bytes are numbered from 0. Range: bytes=500-999
Referer This is the address of the previous web page from which a link to the currently requested page was followed. Referer: http://en.wikipedia.org/wiki/Main_Page
TE The transfer encodings the user agent is willing to accept: the same values as for the response header Transfer-Encoding can be used, plus the "trailers" value (related to the "chunked" transfer method) to notify the server it accepts to receive additional headers (the trailers) after the last, zero-sized, chunk. TE: trailers,deflate;q=0.5
Upgrade Ask the server to upgrade to another protocol. Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-Agent The user agent string of the user agent User-Agent: Mozilla/5.0 (Linux; X11)
Via Informs the server of proxies through which the request was sent. Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning A general warning about possible problems with the entity body. Warning: 199 Miscellaneous warning

[editResponses

 

Field name↓ Description Example
Accept-Ranges What partial content range types this server supports Accept-Ranges: bytes
Age The age the object has been in a proxy cache in seconds Age: 12
Allow Valid actions for a specified resource. To be used for a 405 Method not allowed Allow: GET, HEAD
Cache-Control Tells all caching mechanisms from server to client whether they may cache this object Cache-Control: no-cache
Content-Encoding The type of encoding used on the data Content-Encoding: gzip
Content-Language The language the content is in Content-Language: da
Content-Length The length of the response body in octets (8-bit bytes) Content-Length: 348
Content-Location An alternate location for the returned data Content-Location: /index.htm
Content-Disposition An opportunity to raise a "File Download" dialogue box for a known MIME type Content-Disposition: attachment; filename=fname.ext
Content-MD5 Base64-encoded binary MD5 sum of the content of the response Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range Where in a full body message this partial message belongs Content-Range: bytes 21010-47021/47022
Content-Type The mime type of this content Content-Type: text/html; charset=utf-8
Date The date and time that the message was sent Date: Tue, 15 Nov 1994 08:12:31 GMT
ETag An identifier for a specific version of a resource, often a Message Digest, see ETag ETag: "737060cd8c284d8af7ad3082f209582d"
Expires Gives the date/time after which the response is considered stale Expires: Thu, 01 Dec 1994 16:00:00 GMT
Last-Modified The last modified date for the requested object, in RFC 2822 format Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Location Used in redirection, or when a new resource has been created. Location: http://www.w3.org/pub/WWW/People.html
Pragma Implementation-specific headers that may have various effects anywhere along the request-response chain. Pragma: no-cache
Proxy-Authenticate Request authentication to access the proxy. Proxy-Authenticate: Basic
Refresh Used in redirection, or when a new resource has been created. This refresh redirects after 5 seconds.
(This is a proprietary/non-standard header extension introduced by Netscape and supported by most web browsers.)
Refresh: 5; url=http://www.w3.org/pub/WWW/People.html
Retry-After If an entity is temporarily unavailable, this instructs the client to try again after a specified period of time. Retry-After: 120
Server A name for the server Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Set-Cookie an HTTP cookie Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1
Trailer The Trailer general field value indicates that the given set of header fields is present in the trailer of a message encoded with chunked transfer-coding. Trailer: Max-Forwards
Transfer-Encoding The form of encoding used to safely transfer the entity to the user. Currently defined methodsare: chunked, compress, deflate, gzip, identity. Transfer-Encoding: chunked
Vary Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server. Vary: *
Via Informs the client of proxies through which the response was sent. Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning A general warning about possible problems with the entity body. Warning: 199 Miscellaneous warning
WWW-Authenticate Indicates the authentication scheme that should be used to access the requested entity. WWW-Authenticate: Basic

[editCommon non-standard headers

Non-standard headers can be used, with the convention of prefixing the header name with X- .[1]

 

 

Field name↓ Description Example
X-Frame-Options[2] Clickjacking protection. DENY - no rendering within a frame, SAMEORIGIN - no rendering if origin mismatch X-Frame-Options: DENY
X-XSS-Protection[citation needed] Cross-site scripting (XSS) filter X-XSS-Protection: 1; mode=block
X-Requested-With[3] mainly used to identify Ajax requests. Most JavaScript frameworks send this header with value of XMLHttpRequest X-Requested-With: XMLHttpRequest
X-Forwarded-For[4] a de facto standard for identifying the originating IP address of a client connecting to a web server through an HTTP proxy or load balancer X-Forwarded-For: client1, proxy1, proxy2
X-Forwarded-Proto[citation needed] a de facto standard for identifying the originating protocol of an HTTP request, since a reverse proxy (load balancer) communicates with a web server using HTTP X-Forwarded-Proto: https
相關文章
相關標籤/搜索