日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

如果說HTTP是因特網(wǎng)的信使,那么HTTP報(bào)文就是它用來搬東西的包裹了。HTTP報(bào)文是在HTTP應(yīng)用程序之間發(fā)送的簡單的格式化數(shù)據(jù)塊,每條報(bào)文都包含一條來自客戶端的請求,或者一條來自服務(wù)器的響應(yīng)。它們由三個部分組成:由起始行、首部和實(shí)體的主體部分。本文將主要介紹HTTP報(bào)文起始行

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

報(bào)文語法

所有的HTTP報(bào)文都可以分為兩類:請求報(bào)文(request message)和響應(yīng)報(bào)文(response message)。請求報(bào)文會向Web服務(wù)器請求一個動作,響應(yīng)報(bào)文會將請求的結(jié)果返回給客戶端。請求和響應(yīng)報(bào)文的基本報(bào)文結(jié)構(gòu)相同

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

請求報(bào)文的格式:

<method> <request-URL> <version>
<headers>
<entity-body>

響應(yīng)報(bào)文的格式:

<version><status><reason-phrase>
<headers>
<entity-body>

【方法(method)】

客戶端希望服務(wù)器對資源執(zhí)行的動作。是一個單獨(dú)的詞,比如GET、HEAD或POST

【請求 URL(request-URL)】

命名了所請求資源,或者URL路徑組件的完整URL

【版本(version)】

報(bào)文所使用的HTTP版本,格式如下:

HTTP/<major>.<minor>

其中主要版本號(major)和次要版本號(minor)都是整數(shù)

【狀態(tài)碼(status-code)】

這三位數(shù)字描述了請求過程中所發(fā)生的情況。每個狀態(tài)碼的第一位數(shù)字都用于描述狀態(tài)的一般類別(“成功”、“出錯”等)

【原因短語(reason-phrase)】

數(shù)字狀態(tài)碼的可讀版本,包含行終止序列之前的所有文本

【首部(header)】

可以有零個或多個首部,毎個首部都包含一個名字,后面跟著一個冒號(:),然后是一個可選的空格,接著是一個值,最后是一個CRLF。首部是由一個空行(CRLF)結(jié)束的,表示了首部列表的結(jié)束和實(shí)體主體部分的開始

【實(shí)體的主體部分(entity-body)】

實(shí)體的主體部分包含一個由任意數(shù)據(jù)組成的數(shù)據(jù)塊。并不是所有的報(bào)文都包含實(shí)體的主體部分,有時,報(bào)文只是以一個CRLF結(jié)束

分類

所有的HTTP報(bào)文都以一個起始行作為開始。請求報(bào)文的起始行說明了要做些什么,響應(yīng)報(bào)文的起始行說明發(fā)生了什么。下面將詳細(xì)介紹起始行的內(nèi)容

請求行

請求報(bào)文請求服務(wù)器對資源進(jìn)行一些操作。請求報(bào)文的起始行,或稱為請求行,包含了一個方法和一個請求URL,這個方法描述了服務(wù)器應(yīng)該執(zhí)行的操作,請求URL描述了要對哪個資源執(zhí)行這個方法。請求行中還包含HTTP的版本,用來告知服務(wù)器,客戶端使用的是哪種HTTP。所有這些字段都由空格符分隔

響應(yīng)行

響應(yīng)報(bào)文承載了狀態(tài)信息和操作產(chǎn)生的所有結(jié)果數(shù)據(jù),將其返回給客戶端。響應(yīng)報(bào)文的起始行,或稱為響應(yīng)行,包含了響應(yīng)報(bào)文使用的HTTP版本、數(shù)字狀態(tài)碼,以及描述操作狀態(tài)的文本形式的原因短語。所有這些字段都由空格符進(jìn)行分隔

方法

請求的起始行以方法作為開始,方法用來告知服務(wù)器要做些什么

HTTP常用方法共以下8種

GET:獲取資源

POST:傳輸實(shí)體主體

PUT:傳輸文件

HEAD:獲取報(bào)文首部

DELETE:刪除文件

OPTIONS:詢問支持的方法

TRACE:追蹤路徑

CONNECT:要求用隧道協(xié)議連接代理

GET

GET是最常用的方法。通常用于請求服務(wù)器發(fā)送某個資源

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 


前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

HEAD

HEAD方法與GET方法的行為很類似,但服務(wù)器在響應(yīng)中只返回首部。不會返回實(shí)體的主體部分。這就允許客戶端在未獲取實(shí)際資源的情況下,對資源的首部進(jìn)行檢査。使用HEAD,可以:

1、在不獲取資源的情況下了解資源的情況(比如,判斷其類型);

2、通過査看響應(yīng)中的狀態(tài)碼,看看某個對象是否存在;

3、通過査看首部,測試資源是否被修改

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 


前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

PUT

與GET從服務(wù)器讀取文檔相反,PUT方法會向服務(wù)器寫入文檔。就像FTP協(xié)議的文件上傳一樣,要求在請求報(bào)文的主體中包含文件內(nèi)容,然后保存到請求URI指定的位置

但是,由于HTTP/1.1的PUT方法自身不帶驗(yàn)證機(jī)制,任何人都可以上傳文件,存在安全性問題,因此一般的Web網(wǎng)站不使用該方法。若配合Web應(yīng)用程序的驗(yàn)證機(jī)制,或架構(gòu)設(shè)計(jì)采用REST(REpresentational State Transfer,表征狀態(tài)轉(zhuǎn)移)標(biāo)準(zhǔn)的同類Web網(wǎng)站,就可能會開放使用PUT方法

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

POST

POST方法起初是用來向服務(wù)器輸入數(shù)據(jù)的。實(shí)際上,通常會用它來支持html的表單

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 


前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

TRACE

TRACE請求會在目的服務(wù)器端發(fā)起一個“環(huán)回”診斷。行程最后一站的服務(wù)器會彈回一條TRACE響應(yīng),并在響應(yīng)主體中攜帶它收到的原始請求報(bào)文。這樣客戶端就可以査看在所有中間HTTP應(yīng)用程序組成的請求/響應(yīng)鏈上,原始報(bào)文是否,以及如何被毀壞或修改過

發(fā)送請求時,在Max-Forwards首部字段中填入數(shù)值,每經(jīng)過一個服務(wù)器端就將該數(shù)字減 1,當(dāng)數(shù)值剛好減到0時,就停止繼續(xù)傳輸,最后接收到請求的服務(wù)器端則返回狀態(tài)碼 200 OK 的響應(yīng)

但是,TRACE方法本來就不怎么常用,再加上它容易引發(fā)XST(Cross-Site Tracing,跨站追蹤)攻擊,通常就更不會用到了

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

OPTIONS

OPTIONS方法請求Web服務(wù)器告知其支持的各種功能。可以詢問服務(wù)器通常支持哪些方法,或者對某些特殊資源支持哪些方法

這為客戶端應(yīng)用程序提供了一種手段,使其不用實(shí)際訪問那些資源就能判定訪問各種資源的最優(yōu)方式

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 


前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

DELETE

DELETE方法所做的事情就是請服務(wù)器刪除請求URL所指定的資源

但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一樣不帶驗(yàn)證機(jī)制,所以一般的Web網(wǎng)站也不使用DELETE方法。當(dāng)配合Web應(yīng)用程序的驗(yàn)證機(jī)制,或遵守REST標(biāo)準(zhǔn)時還是有可能會開放使用的

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

CONNECT

CONNECT方法要求在與代理服務(wù)器通信時建立隧道,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行TCP通信。主要使用SSL(Secure Sockets Layer,安全套接層)和TLS(Transport Layer Security,傳輸層安全)協(xié)議把通信內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸

擴(kuò)展方法

HTTP被設(shè)計(jì)成字段可擴(kuò)展的,這樣新的特性就不會使老的軟件失效了。擴(kuò)展方法指的就是沒有在HTTP/1.1規(guī)范中定義的方法。服務(wù)器會為它所管理的資源實(shí)現(xiàn)一些HTTP服務(wù),這些方法為開發(fā)者提供了一種擴(kuò)展這些HTTP服務(wù)能力的手段。下面表中列出的這些方法是WebDAV HTTP擴(kuò)展包含的所有方法,這些方法有助于通過HTTP將Web內(nèi)容發(fā)布到Web服務(wù)器上去

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

版本

HTTP協(xié)議有幾個版本,HTTP應(yīng)用程序要盡量強(qiáng)健地處理各種不同的HTTP協(xié)議變體

【HTTP/0.9】

HTTP的1991原型版本稱為HTTP/0.9。這個協(xié)議有很多嚴(yán)重的設(shè)計(jì)缺陷,只應(yīng)該用于與老客戶端的交互。HTTP/0.9只支持GET方法,不支持多媒體內(nèi)容的MIME類型、各種HTTP首部,或者版本號。HTTP/0.9定義的初衷是為了獲取簡單的HTML對象,它很快就被H1TP/1.0取代了

【HTTP/1.0】

1.0是第一個得到廣泛使用的HTTP版本。HTTP/1.0添加了版本號、各種HTTP首部、一些額外的方法,以及對多媒體對象的處理,HTTP/1.0使得包含生動圖片的Web頁面和交互式表格成為可能,而這些頁面和表格促使萬維網(wǎng)為人們廣泛地接受。這個規(guī)范從未得到良好地說明。在這個HTTP協(xié)議的商業(yè)演進(jìn)和學(xué)術(shù)研究都在快速進(jìn)行的時代,它集合了一系列的最佳實(shí)踐

【HTTP/1.0】

在20世紀(jì)90年代中葉,很多流行的Web客戶端和服務(wù)器都在飛快地向HTTP中添加各種特性,以滿足快速擴(kuò)張且在商業(yè)上十分成功的萬維網(wǎng)的需要。其中很多特性,包括持久的keep-alive連接,虛擬主機(jī)支持,以及代理連接支持都被加入到HTTP之中,并成為非官方的事實(shí)標(biāo)準(zhǔn)。這種非正式的HTTP擴(kuò)展版本通常稱為 HTTP/1.0+

【HTTP/1.1】

HTTP/1.1重點(diǎn)關(guān)注的是校正HTTP設(shè)計(jì)中的結(jié)構(gòu)性缺陷,明確語義,引入重要的性能優(yōu)化措施,并刪除一些不好的特性。HTTP/1.1還包含了對更復(fù)雜的Web應(yīng)用程序和部署方式的支持。HTTP/1.1是當(dāng)前使用的HTTP版本

【HTTP-NG(又名HTTP/2.0)】

HTTP-NG是HTTP/1.1后繼結(jié)構(gòu)的原型建議,它重點(diǎn)關(guān)注的是性能的大幅優(yōu)化,以及更強(qiáng)大的服務(wù)邏輯遠(yuǎn)程執(zhí)行框架。在與HTTP/1.1完全語義兼容的基礎(chǔ)上,進(jìn)一步減少了網(wǎng)絡(luò)延遲

隨著2015年5月14日HTTP/2協(xié)議正式版的發(fā)布,越來越多的網(wǎng)站和第三方CDN服務(wù)開始啟用HTTP/2。HTTP/2是新一代的 HTTP,也是HTTP的未來

狀態(tài)碼

HTTP狀態(tài)碼負(fù)責(zé)表示客戶端HTTP請求的返回結(jié)果、標(biāo)記服務(wù)器端的處理是否正常、通知出現(xiàn)的錯誤等工作。HTTP狀態(tài)碼被分成了五大類,不同的類型代表不同類別的狀態(tài)碼

1XX Informational(信息性狀態(tài)碼) 表示接收的請求正在處理
2XX Success(成功狀態(tài)碼) 表示請求正常處理完畢
3XX Redirection(重定向狀態(tài)碼) 表示需要進(jìn)行附加操作以完成請求
4XX Client Error(客戶端錯誤狀態(tài)碼) 表示服務(wù)器無法處理請求
5XX Server Error(服務(wù)器錯誤狀態(tài)碼) 表示服務(wù)器處理請求出錯

只要遵守狀態(tài)碼類別的定義,即使改變RFC2616中定義的狀態(tài)碼,或服務(wù)器端自行創(chuàng)建狀態(tài)碼都沒問題

僅記錄在RFC2616上的HTTP狀態(tài)碼就達(dá)40種,若再加上WebDAV(Web-based Distributed Authoring and Versioning,基于萬維網(wǎng)的分布式創(chuàng)作和版本控制)(RFC4918、5842)和附加HTTP狀態(tài)碼(RFC6585)等擴(kuò)展,數(shù)量就達(dá)60余種。但實(shí)際上經(jīng)常使用的大概只有十幾種

【1XX】

該部分狀態(tài)碼是信息性狀態(tài)碼,只有兩個

【2XX】

客戶端發(fā)起請求時,這些請求通常是成功的。服務(wù)器有一組用來表示成功的狀態(tài)碼,分別對應(yīng)不同類型的請求

【3XX】

重定向狀態(tài)碼要么告知客戶端使用替代位置來訪問他們所感興趣的資源,要么就提供一個替代的響應(yīng)而不是資源的內(nèi)容。如果資源已被移動,可發(fā)送一個重定向狀態(tài)碼和一個可選的Location首部來告知客戶端資源已被移走,以及現(xiàn)在可以在哪里找到它。這樣,瀏覽器就可以在不打擾使用者的情況下,透明地轉(zhuǎn)入新的位置了

【4XX】

有時客戶端會發(fā)送一些服務(wù)器無法處理的東西,比如格式錯誤的請求報(bào)文,或者請求一個不存在的URL

瀏覽網(wǎng)頁時,我們都看到過404 Not Found錯誤碼——這只是服務(wù)器在告訴我們,它對我們請求的資源一無所知。很多客戶端錯誤都是由瀏覽器來處理的。只有少量錯誤,比如404,還是會穿過瀏覽器來到用戶面前

【5XX】

有時客戶端發(fā)送了一條有效請求,服務(wù)器自身卻出錯了。這可能是客戶端碰上了服務(wù)器的缺陷,或者服務(wù)器上的子元素,比如某個網(wǎng)關(guān)資源出了錯。代理嘗試著代表客戶端與服務(wù)器進(jìn)行交流時,經(jīng)常會出現(xiàn)問題。代理會發(fā)布5XX服務(wù)器錯誤狀態(tài)碼來描述所遇到的問題

前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 


前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 


前端要知道的網(wǎng)絡(luò)知識七:初識HTTP報(bào)文

 

記錄一下,隨時可以翻閱,三天不練手生,三天不看眼生,好記性不如爛筆頭。

分享到:
標(biāo)簽:報(bào)文 HTTP
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定