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) 靈活 無連線:無連線的含義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線,採用這種方式可以
微信小程序 WXML、WXSS 和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&
瀏覽器儲存之Cookie、LocalStorage 和 SessionStorage的區別詳解
Cookie 常用於客戶端與服務端之間的通訊,但是它有本地儲存的功能。 缺點: 儲存量太小,只有4kb 所有http請求都會含cookie,會影響獲取資源的效率 API簡單,需要封裝一下才能用 LocalStorage 和SessionStorage H5問世後
Java進階篇之十五 ----- JDK1.8的Lambda、Stream和日期的使用詳解(很詳細)
前言 本篇主要講述是Java中JDK1.8的一些新語法特性使用,主要是Lambda、Stream和LocalDate日期的一些使用講解。 Lambda Lambda介紹 Lambda 表示式(lambda expression)是一個匿名函式,Lambda表示式基於數學中的λ演算得名,直接對應於
Model、ModelMap和ModelAndView的使用詳解 Model、ModelMap和ModelAndView的使用詳解
原 Model、ModelMap和ModelAndView的使用詳解 置頂 2018年03月25日 12:40:00 zout鄒濤 閱讀數:1
AIO、BIO和NIO的區別詳解
IO讀寫時,多路複用機制都會依賴一個事件分離器,負責把源事件的IO分離出來,對應到read/write事件分離器。 事件分離器的兩種模式: 1. Reactor:同步IO 2. Proactor:非同步IO(重疊IO) Reactor 在Rea
Model、ModelMap和ModelAndView的使用詳解
1.前言 最近SSM框架開發web專案,用得比較火熱。spring-MVC肯定用過,在請求處理方法可出現和返回的引數型別中,最重要就是Model和ModelAndView了,對於MVC框架,控制器Controller執行業務邏輯,用於產生模型資料Model,而檢視V
Java Socket(套接字)程式設計、TCP和UDP通訊過程詳解
網路上的兩個程式通過一個雙向的通訊連線實現資料的交換,這個雙向鏈路的一端被稱為一個Socket。Socket也被稱為套接字,可以用來實現不同虛擬機器或不同計算機之間的通訊。在Java語言中,Socket可以分為兩種型別,面向連線的Socket通訊協議(TCP,Transmi
var、let和const的區別詳解
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請求(包括請求的方法型別、請求與響應、get和post的區別)
經歷了一波秋招,整理了一部分面試題,也是趁這個機會再鞏固一下知識點。(本來想把所有的知識點都寫在一篇部落格中,感覺太冗長了,不如一篇一篇的整潔。) 一、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地址都沒有你請求什麽)