1. 程式人生 > >HTTP響應碼、請求和響應頭標詳解

HTTP響應碼、請求和響應頭標詳解

一、HTTP響應碼
響應碼由三位十進位制數字組成,它們出現在由HTTP伺服器傳送的響應的第一行。

響應碼分五種型別,由它們的第一位數字表示:
1xx:資訊,請求收到,繼續處理
2xx:成功,行為被成功地接受、理解和採納
3xx:重定向,為了完成請求,必須進一步執行的動作
4xx:客戶端錯誤,請求包含語法錯誤或者請求無法實現
5xx:伺服器錯誤,伺服器不能實現一種明顯無效的請求

下表顯示每個響應碼及其含義:
100            繼續
101            分組交換協
200            OK
201            被建立
202            被採納
203            非授權資訊
204            無內容
205            重置內容
206            部分內容
300            多選項
301            永久地傳送
302            找到
303            參見其他

304            未改動
305            使用代理
307            暫時重定向
400            錯誤請求
401            未授權
402            要求付費
403            禁止
404            未找到
405            不允許的方法
406            不被採納
407            要求代理授權
408            請求超時
409            衝突
410            過期的
411            要求的長度
412            前提不成立
413            請求例項太大
414            請求URI太大
415            不支援的媒體型別
416            無法滿足的請求範圍
417            失敗的預期
500            內部伺服器錯誤
501            未被使用
502            閘道器錯誤
503            不可用的服務
504            閘道器超時
505            HTTP版本未被支援

二、HTTP頭標

頭標由主鍵/值對組成。它們描述客戶端或者伺服器的屬性、被傳輸的資源以及應該實現連線。

四種不同型別的頭標:
1.通用頭標:即可用於請求,也可用於響應,是作為一個整體而不是特定資源與事務相關聯。
2.請求頭標:允許客戶端傳遞關於自身的資訊和希望的響應形式。
3.響應頭標:伺服器和於傳遞自身資訊的響應。
4.實體頭標:定義被傳送資源的資訊。即可用於請求,也可用於響應。

頭標格式:<name>:<value><CRLF>

下表描述在HTTP/1.1中用到的頭標
Accept       定義客戶端可以處理的媒體型別,按優先順序排序;
                 在一個以逗號為分隔的列表中,可以定義多種型別和使用萬用字元。例如:Accept: image/jpeg,image/png,*/*
Accept-Charset 
                 定義客戶端可以處理的字符集,按優先順序排序;
                 在一個以逗號為分隔的列表中,可以定義多種型別和使用萬用字元。例如:Accept-Charset: iso-8859-1,*,utf-8

Accept-Encoding        定義客戶端可以理解的編碼機制。例如:Accept-Encoding:gzip,compress
Accept-Language       定義客戶端樂於接受的自然語言列表。例如:Accept-Language: en,de

Accept-Ranges 
             一個響應頭標,它允許伺服器指明:將在給定的偏移和長度處,為資源組成部分的接受請求。
            該頭標的值被理解為請求範圍的度量單位。例如Accept-Ranges: bytes或Accept-Ranges: nonea

Age
       允許伺服器規定自伺服器生成該響應以來所經過的時間長度,以秒為單位。
            該頭標主要用於快取響應。例如:Age: 30

Allow       一個響應頭標,它定義一個由位於請求URI中的次源所支援的HTTP方法列表。例如:Allow: GET,PUT

aUTHORIZATION 
            一個響應頭標,用於定義訪問一種資源所必需的授權(域和被編碼的使用者ID與口令)。
            例如:Authorization: Basic YXV0aG9yOnBoaWw=

Cache-Control        一個用於定義快取指令的通用頭標。例如:Cache-Control: max-age=30
Connection           一個用於表明是否儲存socket連線為開放的通用頭標。例如:Connection: close或Connection: keep-alive

Content-Base  
            一種定義基本URI的實體頭標,為了在實體範圍內解析相對URLs。
            如果沒有定義Content-Base頭標解析相對URLs,使用Content-Location URI(存在且絕對)或使用URI請求。
            例如:Content-Base: Http://www.myweb.com

Content-Encoding    一種介質型別修飾符,標明一個實體是如何編碼的。例如:Content-Encoding: zip
Content-Language    用於指定在輸入流中資料的自然語言型別。例如:Content-Language: en
Content-Length        指定包含於請求或響應中資料的位元組長度。例如:Content-Length:382

Content-Location
            指定包含於請求或響應中的資源定位(URI)。
            如果是一絕。對URL它也作為被解析實體的相對URL的出發點。
            例如:Content-Location: http://www.myweb.com/news

Content-MD5
            實體的一種MD5摘要,用作校驗和。
            傳送方和接受方都計算MD5摘要,接受方將其計算的值與此頭標中傳遞的值進行比較。
            例如:Content-MD5: <base64 of 128 MD5 digest>

Content-Range 
            隨部分實體一同傳送;標明被插入位元組的低位與高位位元組偏移,也標明此實體的總長度。
            例如:Content-Range: 1001-2000/5000

Contern-Type        標明發送或者接收的實體的MIME型別。例如:Content-Type: text/html
Date                    傳送HTTP訊息的日期。例如:Date: Mon,10PR 18:42:51 GMT

ETag      一種實體頭標,它向被髮送的資源分派一個唯一的識別符號。
            對於可以使用多種URL請求的資源,ETag可以用於確定實際被髮送的資源是否為同一資源。
            例如:ETag: "208f-419e-30f8dc99"

Expires          指定實體的有效期。例如:Expires: Mon,05 Dec 2008 12:00:00 GMT
Form            一種請求頭標,給定控制使用者代理的人工使用者的電子郵件地址。例如:From: [email protected]
Host            被請求資源的主機名。對於使用HTTP/1.1的請求而言,此域是強制性的。例如:Host: www.myweb.com

If-Modified-Since   
            如果包含了GET請求,導致該請求條件性地依賴於資源上次修改日期。
            如果出現了此頭標,並且自指定日期以來,此資源已被修改,應該反回一個304響應程式碼。
            例如:If-Modified-Since: Mon,10PR 18:42:51 GMT

If-Match            如果包含於一個請求,指定一個或者多個實體標記。只發送其ETag與列表中標記區配的資源。
                       例如:If-Match: "208f-419e-308dc99"

If-None-Match 
           如果包含一個請求,指定一個或者多個實體標記。資源的ETag不與列表中的任何一個條件匹配,操作才執行。
           例如:If-None-Match: "208f-419e-308dc99"

If-Range
            指定資源的一個實體標記,客戶端已經擁有此資源的一個拷貝。必須與Range頭標一同使用。
            如果此實體自上次被客戶端檢索以來,還不曾修改過,那麼伺服器只發送指定的範圍,否則它將傳送整個資源。
            例如:Range: byte=0-499<CRLF>If-Range:"208f-419e-30f8dc99"

If-Unmodified-Since
            只有自指定的日期以來,被請求的實體還不曾被修改過,才會返回此實體。
            例如:If-Unmodified-Since:Mon,10PR 18:42:51 GMT

Last-Modified        指定被請求資源上次被修改的日期和時間。例如:Last-Modified: Mon,10PR 18:42:51 GMT
Location 
            對於一個已經移動的資源,用於重定向請求者至另一個位置。
            與狀態編碼302(暫時移動)或者301(永久性移動)配合使用。
            例如:Location: http://www2.myweb.com/index.jsp

Max-Forwards 
            一個用於TRACE方法的請求頭標,以指定代理或閘道器的最大數目,該請求通過閘道器才得以路由。
            在通過請求傳遞之前,代理或閘道器應該減少此數目。例如:Max-Forwards: 3

Pragma            一個通用頭標,它傳送實現相關的資訊。例如:Pragma: no-cache
Proxy-Authenticate
           類似於WWW-Authenticate,便是有意請求只來自請求鏈(代理)的下一個伺服器的認證。
           例如:Proxy-Authenticate: Basic realm-admin

Proxy-Proxy-Authorization
            類似於授權,但並非有意傳遞任何比在即時伺服器鏈中更進一步的內容。
            例如:Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=

Public            列表顯示伺服器所支援的方法集。例如:Public: OPTIONS,MGET,MHEAD,GET,HEAD
Range            指定一種度量單位和一個部分被請求資源的偏移範圍。例如:Range: bytes=206-5513

Refener
            一種請求頭標域,標明產生請求的初始資源。對於HTML表單,它包含此表單的Web頁面的地址。
            例如:Refener: http://www.myweb.com/news/search.html

Retry-After 
           一種響應頭標域,由伺服器與狀態編碼503(無法提供服務)配合傳送,以標明再次請求之前應該等待多長時間。
           此時間即可以是一種日期,也可以是一種秒單位。例如:Retry-After: 18

Server                     一種標明Web伺服器軟體及其版本號的頭標。例如:Server: Apache/2.0.46(Win32)
Transfer-Encoding     一種通用頭標,標明對應被接受方反向的訊息體實施變換的型別。例如:Transfer-Encoding: chunked

Upgrade 
            允許伺服器指定一種新的協議或者新的協議版本,與響應編碼101(切換協議)配合使用。
            例如:Upgrade: HTTP/2.0

User-Agent
            定義用於產生請求的軟體型別(典型的如Web瀏覽器)。
            例如:User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT; DigExt)

Vary          一個響應頭標,用於表示使用伺服器驅動的協商從可用的響應表示中選擇響應實體。例如:Vary: *
Via            一個包含所有中間主機和協議的通用頭標,用於滿足請求。例如:Via: 1.0 fred.com, 1.1 wilma.com
Warning    用於提供關於響應狀態補充資訊的響應頭標。例如:Warning: 99 www.myweb.com Piano needs tuning

www-Authenticate
            一個提示使用者代理提供使用者名稱和口令的響應頭標,與狀態編碼401(未授權)配合使用。響應一個授權頭標。

相關推薦

HTTP響應請求響應

一、HTTP響應碼 響應碼由三位十進位制數字組成,它們出現在由HTTP伺服器傳送的響應的第一行。 響應碼分五種型別,由它們的第一位數字表示: 1xx:資訊,請求收到,繼續處理 2xx:成功,行為被成功地接受、理解和採納 3xx:重定向,為了完成請求,必須進一步執行的動作 4xx:客戶端錯誤,請求包含語法錯誤或

REST(三)處理HTTP狀態異常響應

REST(三)處理HTTP狀態碼、異常和響應頭 之前的內容只是討論了正確的處理結果,而沒有討論當沒有找到資源時的處理或者發生異常時的處理。當發生資源找不到或者處理邏輯發生異常時,需要考慮的時返回給客戶端HTTP抓鬼你太嗎和錯誤訊息的問題。為了簡化這些開發,Spring提供了實體封裝類

HTTP協議-HTTP特點請求響應

更多詳細內容請看W3C/HTTP1.1官方文件,英文原文地址 HTTP協議 主要特點 支援客戶/伺服器模型(C/S) 靈活 無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線,採用這種方式可以

微信小程序 WXMLWXSS JS介紹及

名單 獲取 hang href 直接 last 1.2 data sub 前幾天折騰了下。然後列出一些實驗結果,供大家參考。 百牛信息技術bainiu.ltd整理發布於博客園 0. 使用開發工具模擬的和真機差異還是比較大的。也建議大家還是真機調試比較靠譜。 1. WXML(

微擎數據庫緩存的增查函數

一個 value conf 反序列化 詳解 數據操作 保存 name sea 函數所在文件:framework/function/cache.mysql.func.php目前微擎的個人真實調用:$setting = $this->module['config&

瀏覽器儲存之CookieLocalStorage SessionStorage的區別

Cookie 常用於客戶端與服務端之間的通訊,但是它有本地儲存的功能。 缺點: 儲存量太小,只有4kb 所有http請求都會含cookie,會影響獲取資源的效率 API簡單,需要封裝一下才能用 LocalStorage 和SessionStorage H5問世後

Java進階篇之十五 ----- JDK1.8的LambdaStream日期的使用(很詳細)

前言 本篇主要講述是Java中JDK1.8的一些新語法特性使用,主要是Lambda、Stream和LocalDate日期的一些使用講解。 Lambda Lambda介紹 Lambda 表示式(lambda expression)是一個匿名函式,Lambda表示式基於數學中的λ演算得名,直接對應於

ModelModelMapModelAndView的使用 ModelModelMapModelAndView的使用

原 Model、ModelMap和ModelAndView的使用詳解 置頂 2018年03月25日 12:40:00 zout鄒濤 閱讀數:1

AIOBIONIO的區別

IO讀寫時,多路複用機制都會依賴一個事件分離器,負責把源事件的IO分離出來,對應到read/write事件分離器。 事件分離器的兩種模式: 1. Reactor:同步IO 2. Proactor:非同步IO(重疊IO) Reactor 在Rea

ModelModelMapModelAndView的使用

1.前言 最近SSM框架開發web專案,用得比較火熱。spring-MVC肯定用過,在請求處理方法可出現和返回的引數型別中,最重要就是Model和ModelAndView了,對於MVC框架,控制器Controller執行業務邏輯,用於產生模型資料Model,而檢視V

Java Socket(套接字)程式設計TCPUDP通訊過程

網路上的兩個程式通過一個雙向的通訊連線實現資料的交換,這個雙向鏈路的一端被稱為一個Socket。Socket也被稱為套接字,可以用來實現不同虛擬機器或不同計算機之間的通訊。在Java語言中,Socket可以分為兩種型別,面向連線的Socket通訊協議(TCP,Transmi

varletconst的區別

  let 和 const 是 ECMAScript6 新推出的特性,其中 let 是能夠替代 var 的“標準”,所以我們探討 var、let 和 const 的區別,首先應該知道 var 到底有什麼不規範的地方,或者是說有什麼弊端。 var 的 特性 變數提升   var 是 Javascript 用來定

HTTP學習記錄:四資訊(請求響應

學習資源主要為:@小坦克HTTP相關部落格 一、請求頭資訊(Request Header) 請求頭資訊包含比較多,如下: 1、Cache頭域   if-modified-Since   作用:把瀏覽器端快取頁面的最後修改時間傳送到伺服器去,伺服器會把這個時間與伺服器上的實際檔案的最後修改時間進行對比

Servlet(10)Http協議HTTP請求響應及其(檔案下載)

1 HTTP協議 HTTP協議是網際網路上應用最廣泛的一種網路協議。是工作在TCP/IP協議基礎上的,所有的www檔案都必須遵守這個標準。設計HTTP的最初目的是為了提供一種釋出和接受HTML頁面的方法。 HTTP是TCP/IP協議的一個應用層協議,也是we

HTTP協議簡介 HTTP協議發展 原理 請求方法 響應狀態 請求 請求首部 java模擬瀏覽器客戶端服務端

協議簡介 協議,自然語言裡面就是契約,也是雙方或者多方經過協商達成的一致意見; 契約也即類似於合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通訊協議,也即是雙方通過網路通訊必須遵從的一組約定; 計算機網路的本質在於傳遞資料,協議自然是針對於資料的結構格式以及傳送規則的約定;

前端面試題之HTTP請求(包括請求的方法型別請求響應getpost的區別)

經歷了一波秋招,整理了一部分面試題,也是趁這個機會再鞏固一下知識點。(本來想把所有的知識點都寫在一篇部落格中,感覺太冗長了,不如一篇一篇的整潔。) 一、HTTP請求(主要從請求的方法型別、請求訊息和響應訊息、get和post的區別這幾部分來說) 1、請求的方法:HTTP1.0定義了三種請求方

HTTP響應資訊請求資訊

web效能測試中有一個web資源分析,web資源是從伺服器入手對web伺服器的效能進行分析。所以瞭解一下以下資訊是很有必要的哦。 一:響應頭資訊 HTTP(HyperTextTransferProtocol)是超文字傳輸協議的縮寫,它用於傳送WWW方式的資料,關於HT

HTTP請求響應2:方法(Method)

trace 行處理 診斷 ack 中間 delete nds 最優 eas 方法表明了client希望server對資源運行的動作。經常使用的方法包含:GET、HEAD、POST、PUT、TRACE、OPTIONS和DELETE,每一個server能夠實現這些方法中

HTTP請求響應淺析

cati odi 客戶端 9.png bubuko 連接 str tps size HTTP中的請求 HTTP中請求由三部分組成: HTTP中請求行:請求行分為三部分(請求方法+請求地址+協議和版本)例: POST/GET https://www.baidu.com/

http請求響應的內容

什麽 請求 live 域名 har 查詢 keep 提交 時間 一、HTTP請求的四個部分: 1、HTTP請求的方法或者動作,GET或者POST等 Request Method: POST 2、請求地址URL(你連URL地址都沒有你請求什麽)