天天看點

HTTP 請求報頭詳解

http頭的組成: 
============== 
 HTTP頭字段包括4類:  
     general-header ; 
     request-header ; 
     response-header ; 
     entity-header . 

******************************************************************************* 
 General Header Fields 
============================= 
   general header是request、response都可用的, 但是不能用于entity.  


       -- Cache-Control 
       -- Connection 
       -- Date 
       -- Pragma 
       -- Trailer 
       -- Transfer-Encoding 
       -- Upgrade 
       -- Via 
       -- Warning 

******************************************************************************* 
 Request Header Fields 
====================== 

   request-header fields 允許用戶端傳遞關于request和用戶端的附加資訊到服務端, 

       -- Accept 
       -- Accept-Charset 
       -- Accept-Encoding 
       -- Accept-Language 
       -- Authorization 
       -- Expect 
       -- From 
       -- Host 
       -- If-Match 
       -- If-Modified-Since 
       -- If-None-Match 
       -- If-Range 
       -- If-Unmodified-Since 
       -- Max-Forwards 
       -- Proxy-Authorization 
       -- Range  
       -- Referer 
       -- TE 
       -- User-Agent 

******************************************************************************* 
  Response Header Fields 
=============================== 

   response-header fields 允許服務端傳遞關于response的、不能放到Status-Line的附加資訊。 
   這些頭給出關于服務端的資訊。    

      -- Accept-Ranges 
      -- Age 
      -- ETag 
      -- Location  
      -- Proxy-Authenticate 
      -- Retry-After 
      -- Server 
      -- Vary  
      -- WWW-Authenticate 

******************************************************************************* 
 Entity Header Fields 
======================== 

   Entity-header fields 定義關于entity-body的metainformation(标題字段資料), 
   如果目前沒有body, 則定義被request确定的資源資訊. 
   一些metainformation是可選的; 一些是必須的。 

       -- Allow 
       -- Content-Encoding 
       -- Content-Language 
       -- Content-Length 
       -- Content-Location 
       -- Content-MD5 
       -- Content-Range 
       -- Content-Type 
       -- Expires 
       -- Last-Modified 
       -- extension-header 


【轉自】http://www.x5dj.com/userforum/00100239/00305167.shtml 


一、基礎篇 
HTTP(HyperTextTransferProtocol)是超文本傳輸協定的縮寫,它用于傳送WWW方式的資料,關于HTTP協定的詳細内容請參考RFC2616。HTTP協定采用了請求/響應模型。用戶端向伺服器發送一個請求,請求頭包含請求的方法、URI、協定版本、以及包含請求修飾符、客戶資訊和内容的類似于MIME的消息結構。伺服器以一個狀态行作為響應,相應的内容包括消息協定的版本,成功或者錯誤編碼加上包含伺服器資訊、實體元資訊以及可能的實體内容。 
通常HTTP消息包括客戶機向伺服器的請求消息和伺服器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個隻是頭域結束的空行和可選的消息體組成。HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每個頭域由一個域名,冒号(:)和域值三部分組成。域名是大小寫無關的,域值前可以添加任何數量的空格符,頭域可以被擴充為多行,在每行開始處,使用至少一個空格或制表符。 

1、通用頭域 
通用頭域包含請求和響應消息都支援的頭域,通用頭域包含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相同。 

2、請求消息 
請求消息的第一行為下面的格式: 
Method SP Request-URI SP HTTP-Version CRLF  
Method表示對于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。對請求頭域的擴充要求通訊雙方都支援,如果存在不支援的請求頭域,一般将會作為實體頭域處理。 
典型的請求消息: 
GEThttp://class/download.microtool.de:80/somedata.exe 
Host:download.microtool.de 
Accept:*/* 
Pragma:no-cache 
Cache-Control:no-cache 
Referer:http://class/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頭域的内容包含送出請求的使用者資訊。 

3、響應消息 
響應消息的第一行為下面的格式: 
HTTP-Version SP Status-Code SP Reason-Phrase CRLF 
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響應頭包含處理請求的原始伺服器的軟體資訊。此域能包含多個産品辨別和注釋,産品辨別一般按照重要性排序。 

4、實體資訊 
請求消息和響應消息都可以包含實體資訊,實體資訊一般由實體頭域和實體組成。實體頭域包含關于實體的原資訊,實體頭包括Allow、Content-Base、Content-Encoding、Content-Language、 Content-Length、Content-Location、Content-MD5、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-unit SP first-byte-pos - last-byte-pos/entity-legth 
例如,傳送頭500個位元組次字段的形式:Content-Range:bytes0-499/1234如果一個http消息包含此節(例如,對範圍請求的響應或對一系列範圍的重疊請求),Content-Range表示傳送的範圍,Content-Length表示實際傳送的位元組數。 
Last-modified實體頭 
Last-modified實體頭指定伺服器上儲存内容的最後修訂時間。 

5、 HTTP 頭參考(microsoft) 
HTTP 請求和 HTTP 響應都使用頭發送有關 HTTP 消息的資訊。頭由一系列行組成,每行都包含名稱,然後依次是冒号、空格、值。字段可按任何順序排列。某些頭字段既能用于請求頭也能用于響應頭,而另一些頭字段隻能用于其中之一。  
許多請求頭字段都允許用戶端在值部分指定多個可接受的選項,有時甚至可以對這些選項的首選項進行排名。多個項以逗号分隔。例如,用戶端可以發送包含 “Content-Encoding: gzip, compress,”的請求頭,表示可以接受各種壓縮類型。如果伺服器的響應正文使用 gzip 編碼,其響應頭中将包含“Content-Encoding: gzip”。 
有些字段可以在單個頭中出現多次。例如,頭可以有多個“Warning”字段。 
下表列出了 HTTP 1.1 頭字段。注意:有些頭字段是 MIME 字段。MIME 字段在 Internet Engineering Task Force (IETF) 文檔 RFC 2045 中進行了定義,但也可用于 HTTP 1.1 協定。有關 MIME 和 HTTP 1.1 規範的詳細資訊,請參閱 IEIF 頁。 
一般頭字段 
一般頭字段可用于請求消息和響應消息。 
 名稱          示例值  
Cache-Control  "max-age=10"  
Connection    "close"  
Date          "Tue, 11 Jul 2000 18:23:51 GMT"  
Pragma        "no-cache"  
Trailer         "Date"  
Transfer-Encoding "chunked"  
Upgrade       "SHTTP/1.3"  
Via            "HTTP/1.1 Proxy1, HTTP/1.1 Proxy2"  
Warning       "112 Disconnected Operation"  
請求頭字段  
請求頭字段僅用于請求消息。 
   名稱             示例值  
Accept           "text/html, image/*"  
Accept-Charset   "iso8859-5"  
Accept-Encoding  "gzip, compress"  
Accept-Language "en, fr"  
Authorization     [credentials]  
Content-Encoding "gzip"  
Expect           "100-continue"  
From            "[email protected]"  
Host            "www.microsoft.com"  
If-Match         "entity_tag001"  
If-Modified-Since "Tue, 11 Jul 2000 18:23:51 GMT"  
If-None-Match    "entity_tag001"  
If-Range         "entity_tag001" or "Tue, 11 Jul 2000 18:23:51 GMT"  
If-Unmodified-Since "Tue, 11 Jul 2000 18:23:51 GMT"  
Max-Forwards    "3"  
Proxy-Authorization [credentials]  
Range       "bytes=100-599"  
Referer      "http://www.microsoft.com/resources.asp"  
TE          "trailers"  
User-Agent   "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)" 

>>請求頭字段的具體含義 
Accept:浏覽器可接受的MIME類型。  
Accept-Charset:浏覽器可接受的字元集。  
Accept-Encoding:浏覽器能夠進行解碼的資料編碼方式,比如gzip。 
Accept-Language:浏覽器所希望的語言種類,當伺服器能夠提供一種以上的語言版本時要用到。  
Authorization:授權資訊,通常出現在對伺服器發送的WWW-Authenticate頭的應答中。  
Connection:表示是否需要持久連接配接。如果Servlet看到這裡的值為“Keep-Alive”,或者看到請求使用的是HTTP 1.1(HTTP 1.1預設進行持久連接配接),它就可以利用持久連接配接的優點,當頁面包含多個元素時(例如Applet,圖檔),顯著地減少下載下傳所需要的時間。要實作這一點, Servlet需要在應答中發送一個Content-Length頭,最簡單的實作方法是:先把内容寫入ByteArrayOutputStream,然後在正式寫出内容之前計算它的大小。 
Content-Length:表示請求消息正文的長度。  
Cookie:設定cookie,這是最重要的請求頭資訊之一 
From:請求發送者的email位址,由一些特殊的Web客戶程式使用,浏覽器不會用到它。  
Host:初始URL中的主機和端口。  
If-Modified-Since:隻有當所請求的内容在指定的日期之後又經過修改才傳回它,否則傳回304“Not Modified”應答。  
Pragma:指定“no-cache”值表示伺服器必須傳回一個重新整理後的文檔,即使它是代理伺服器而且已經有了頁面的本地拷貝。  
Referer:包含一個URL,使用者從該URL代表的頁面出發通路目前請求的頁面。  
User-Agent:浏覽器類型,如果Servlet傳回的内容與浏覽器類型有關則該值非常有用。 
UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏覽器所發送的非标準的請求頭,表示螢幕大小、顔色深度、作業系統和CPU類型。  
響應頭字段  
響應頭字段僅用于響應消息。 
  名稱          示例值  
Accept-Ranges  "none"  
Age            "2147483648(2^31)"  
ETag           "b38b9-17dd-367c5dcd"  
Last-Modified    "Tue, 11 Jul 2000 18:23:51 GMT"  
Location        "http://localhost/redirecttarget.asp"  
Proxy-Authenticate [challenge]  
Retry-After      "Tue, 11 Jul 2000 18:23:51 GMT" or "60"  
Server         "Microsoft-IIS/5.0"  
Vary            "Date"  
WWW-Authenticate [challenge]  
實體頭字段  
實體頭字段可以用于請求消息或響應消息。實體頭字段中包含消息實體正文的有關資訊,如使用的編碼格式。 
   名稱            示例值  
Allow              "GET, HEAD"  
Content-Encoding   "gzip"  
Content-Language  "en"  
Content-Length     "8445"  
Content-Location   "http://localhost/page.asp"  
Content-MD5       [md5-digest]  
Content-Range     "bytes 2543-4532/7898"  
Content-Type      "text/html"  
Expires           "Tue, 11 Jul 2000 18:23:51 GMT"  
Last-Modified      "Tue, 11 Jul 2000 18:23:51 GMT"  
>>實體頭字段的具體含義 
Allow 伺服器支援哪些請求方法(如GET、POST等)。 
Content-Encoding 文檔的編碼(Encode)方法。隻有在解碼之後才可以得到Content-Type頭指定的内容類型。利用gzip壓縮文檔能夠顯著地減少HTML文檔的下載下傳時間。Java的GZIPOutputStream可以很友善地進行gzip壓縮,但隻有Unix上的Netscape和Windows上的IE 4、IE 5才支援它。 
Content-Length 表示内容長度。隻有當浏覽器使用持久HTTP連接配接時才需要這個資料。 
Content-Type 表示後面的文檔屬于什麼MIME類型。Servlet預設為text/plain,但通常需要顯式地指定為text/html。 
Date 目前的GMT時間。你可以用setDateHeader來設定這個頭以避免轉換時間格式的麻煩。  
Expires 應該在什麼時候認為文檔已經過期,進而不再緩存它?  
Last-Modified 文檔的最後改動時間。客戶可以通過If-Modified-Since請求頭提供一個日期,該請求将被視為一個條件GET,隻有改動時間遲于指定時間的文檔才會傳回,否則傳回一個304(Not Modified)狀态。 
Location 表示客戶應當到哪裡去提取文檔。Location通常不是直接設定的,而是通過HttpServletResponse的sendRedirect方法,該方法同時設定狀态代碼為302。  
Refresh 表示浏覽器應該在多少時間之後重新整理文檔,以秒計。除了重新整理目前文檔之外,你還可以通過setHeader("Refresh", "5; URL=http://host/path")讓浏覽器讀取指定的頁面。  
注意這種功能通常是通過設定HTML頁面HEAD區的<META HTTP-EQUIV="Refresh" C>實作,這是因為,自動重新整理或重定向對于那些不能使用CGI或Servlet的HTML編寫者十分重要。但是,對于Servlet來說,直接設定 Refresh頭更加友善。  
注意Refresh的意義是“N秒之後重新整理本頁面或通路指定頁面”,而不是“每隔N秒重新整理本頁面或通路指定頁面 ”。是以,連續重新整理要求每次都發送一個Refresh頭,而發送204狀态代碼則可以阻止浏覽器繼續重新整理,不管是使用Refresh頭還是<META HTTP-EQUIV="Refresh" ...>。  
注意Refresh頭不屬于HTTP 1.1正式規範的一部分,而是一個擴充,但Netscape和IE都支援它。  
請求頭示例 
以下是 HTTP 請求的簡單示例。 
GET /articles/news/today.asp HTTP/1.1 
Accept: */* 
Accept-Language: en-us 
Connection: Keep-Alive 
Host: localhost 
Referer: http://localhost/links.asp 
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 
Accept-Encoding: gzip, deflate 
該請求具有請求行,其中包括方法 (GET)、資源路徑 (/articles/news/today.asp) 和 HTTP 版本 (HTTP/1.1)。由于該請求沒有正文,故所有請求行後面的内容都是頭的一部分。緊接着頭之後是一個空行,表示頭已結束。 
響應頭示例 
Web 伺服器可以通過多種方式響應前一個請求。假設檔案是可以通路的,并且使用者具有檢視該檔案的權限,則響應類似于: 
HTTP/1.1 200 OK 
Server: Microsoft-IIS/5.0 
Date: Thu, 13 Jul 2000 05:46:53 GMT 
Content-Length: 2291 
Content-Type: text/html 
Set-Cookie: ASPSESSIONIDQQGGGNCG=LKLDFFKCINFLDMFHCBCBMFLJ; path=/ 
Cache-control: private 
... 
響應的第一行稱為狀态行。它包含響應所用的 HTTP 版本、狀态編碼 (200) 和原因短語。示例中包含一個頭,其中具有五個字段,接着是一個空行(回車和換行符),然後是響應正文的頭兩行。 
有關HTTP頭完整、詳細的說明,請參見http://www.w3.org/Protocols/的HTTP規範。 

附錄:HTTP協定狀态碼的含義 
  狀态代碼 狀态資訊 含義  
100 Continue 初始的請求已經接受,客戶應當繼續發送請求的其餘部分。(HTTP 1.1新) 
101 Switching Protocols 伺服器将遵從客戶的請求轉換到另外一種協定(HTTP 1.1新 
200 OK 一切正常,對GET和POST請求的應答文檔跟在後面。 
201 Created 伺服器已經建立了文檔,Location頭給出了它的URL。 
202 Accepted 已經接受請求,但處理尚未完成。  
203 Non-Authoritative Information 文檔已經正常地傳回,但一些應答頭可能不正确,因為使用的是文檔的拷貝(HTTP 1.1新)。  
204 No Content 沒有新文檔,浏覽器應該繼續顯示原來的文檔。 
205 Reset Content 沒有新的内容,但浏覽器應該重置它所顯示的内容。用來強制浏覽器清除表單輸入内容(HTTP 1.1新)。  
206 Partial Content 客戶發送了一個帶有Range頭的GET請求,伺服器完成了它(HTTP 1.1新)。  
300 Multiple Choices 客戶請求的文檔可以在多個位置找到,這些位置已經在傳回的文檔内列出。如果伺服器要提出優先選擇,則應該在Location應答頭指明。  
301 Moved Permanently 客戶請求的文檔在其他地方,新的URL在Location頭中給出,浏覽器應該自動地通路新的URL。  
302 Found 類似于301,但新的URL應該被視為臨時性的替代,而不是永久性的。注意,在HTTP1.0中對應的狀态資訊是“Moved Temporatily”,出現該狀态代碼時,浏覽器能夠自動通路新的URL,是以它是一個很有用的狀态代碼。注意這個狀态代碼有時候可以和301替換使用。例如,如果浏覽器錯誤地請求http://host/~user(缺少了後面的斜杠),有的伺服器傳回301,有的則傳回302。嚴格地說,我們隻能假定隻有當原來的請求是GET時浏覽器才會自動重定向。請參見307。  
303 See Other 類似于301/302,不同之處在于,如果原來的請求是POST,Location頭指定的重定向目标文檔應該通過GET提取(HTTP 1.1新)。  
304 Not Modified 用戶端有緩沖的文檔并發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶隻想比指定日期更新的文檔)。伺服器告訴客戶,原來緩沖的文檔還可以繼續使用。 
305 Use Proxy 客戶請求的文檔應該通過Location頭所指明的代理伺服器提取(HTTP 1.1新)。 
307 Temporary Redirect 和302(Found)相同。許多浏覽器會錯誤地響應302應答進行重定向,即使原來的請求是POST,即使它實際上隻能在POST請求的應答是303時才能重定向。由于這個原因,HTTP 1.1新增了307,以便更加清除地區分幾個狀态代碼:當出現303應答時,浏覽器可以跟随重定向的GET和POST請求;如果是307應答,則浏覽器隻能跟随對GET請求的重定向。(HTTP 1.1新)  
400 Bad Request 請求出現文法錯誤。  
401 Unauthorized 客戶試圖未經授權通路受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,浏覽器據此顯示使用者名字/密碼對話框,然後在填寫合适的Authorization頭後再次送出請求。  
403 Forbidden 資源不可用。伺服器了解客戶的請求,但拒絕處理它。通常由于伺服器上檔案或目錄的權限設定導緻。  
404 Not Found 無法找到指定位置的資源。這也是一個常用的應答,  
405 Method Not Allowed 請求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)對指定的資源不适用。(HTTP 1.1新)  
406 Not Acceptable 指定的資源已經找到,但它的MIME類型和客戶在Accpet頭中所指定的不相容(HTTP 1.1新)。  
407 Proxy Authentication Required 類似于401,表示客戶必須先經過代理伺服器的授權。(HTTP 1.1新) 
408 Request Timeout 在伺服器許可的等待時間内,客戶一直沒有發出任何請求。客戶可以在以後重複同一請求。(HTTP 1.1新)  
409 Conflict 通常和PUT請求有關。由于請求和資源的目前狀态相沖突,是以請求不能成功。(HTTP 1.1新) 
410 Gone 所請求的文檔已經不再可用,而且伺服器不知道應該重定向到哪一個位址。它和404的不同在于,傳回407表示文檔永久地離開了指定的位置,而404表示由于未知的原因文檔不可用。(HTTP 1.1新) 
411 Length Required 伺服器不能處理請求,除非客戶發送一個Content-Length頭。(HTTP 1.1新) 
412 Precondition Failed 請求頭中指定的一些前提條件失敗(HTTP 1.1新)。  
413 Request Entity Too Large 目标文檔的大小超過伺服器目前願意處理的大小。如果伺服器認為自己能夠稍後再處理該請求,則應該提供一個Retry-After頭(HTTP 1.1新)。  
414 Request URI Too Long URI太長(HTTP 1.1新)。  
416 Requested Range Not Satisfiable 伺服器不能滿足客戶在請求中指定的Range頭。(HTTP 1.1新)  
500 Internal Server Error 伺服器遇到了意料不到的情況,不能完成客戶的請求。  
501 Not Implemented 伺服器不支援實作請求所需要的功能。例如,客戶發出了一個伺服器不支援的PUT請求。 
502 Bad Gateway 伺服器作為網關或者代理時,為了完成請求通路下一個伺服器,但該伺服器傳回了非法的應答。  
503 Service Unavailable 伺服器由于維護或者負載過重未能應答。 
504 Gateway Timeout 由作為代理或網關的伺服器使用,表示不能及時地從遠端伺服器獲得應答。(HTTP 1.1新)  
505 HTTP Version Not Supported 伺服器不支援請求中所指明的HTTP版本
           

繼續閱讀