摘要:如果客戶端錯誤的讓代理介入某個請求,可能引發(fā)破壞性的行為,照成安全漏銅問題未使用未使用與狀態(tài)碼類似但客戶端應(yīng)該使用首部給出的來臨時定位資源。
http
介紹:http基于tcp/ip通信來傳遞數(shù)據(jù)
注意事項http是無連接:每次連接只處理一個請求,服務(wù)器處理完請求后,并收到客戶端的應(yīng)答后,即斷開連接;
http媒體是獨立的:只要客戶端和服務(wù)器端知道如何處理數(shù)據(jù)類型,任何數(shù)據(jù)都可以用http傳送;
http無狀態(tài):無狀態(tài)是指協(xié)議對于事物處理沒得記憶能力;
消息結(jié)構(gòu)1.http客服端請求包括:請求行、請求頭部、空行和請求數(shù)據(jù)
2.http響應(yīng):狀態(tài)行、消息報頭、空行、響應(yīng)正文
http請求方法http1.0:get、post和head
http1.1新增五種請求方式: delete、put、connect、 tarce和options
方法 | 描述 |
---|---|
get | 向特定資源發(fā)起請求 |
post | 向指定資源提交數(shù)據(jù)進行數(shù)據(jù)處理。數(shù)據(jù)包含在請求體中,post請求可能用于新的資源的創(chuàng)建以及已有資源的修改 |
head | 類似與get請求,只不過沒有返回體,用于獲取包含在響應(yīng)消息頭中的元信息 |
put | 向指定資源上傳最新內(nèi)容 |
delete | 請求服務(wù)器刪除指定資源 |
trace | 回顯服務(wù)器收到的請求,主要用于測試或診斷 |
connect | http1.1中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器 |
options | 返回服務(wù)器對特定資源支持的http方法,用來向服務(wù)器發(fā)送‘*’的請求來測試服務(wù)器的功能性 |
首部和方法配合工作,共同決定客戶端和服務(wù)端能做什么事情
通用首部客戶端和服務(wù)端都可以使用的首部
首部 | 描述 |
---|---|
Connection | 允許客戶端與服務(wù)端指定與請求/響應(yīng)相連接有關(guān)的選項 |
Date | 提供日期和時間標(biāo)志,說明報文是什么時間創(chuàng)建的 |
MIME-Version | 給出發(fā)送給端MIME版本 |
Trailer | 如果報文傳輸采用分塊傳輸(chunked transfer encoding)方式,就可以用這個首部列出位于報文拖掛部分的首部集合 |
Transfer-Encoding | 告訴接受端為了保證報文的可靠傳輸,對報文采用了什么編碼方式 |
Update | 給出了發(fā)送端可能想要“升級”使用新版或協(xié)議 |
Via | 顯示報文經(jīng)過的中間節(jié)點(代理、網(wǎng)關(guān)) |
請求報文特有的,為服務(wù)器提供一些額外的信息,比如客戶端希望接收到什么樣的數(shù)據(jù)類型
請求的信息性首部首部 | 描述 |
---|---|
Client-Ip | 提供運行客戶端機器的IP地址 |
From | 提供客戶端用戶的E-mail地址 |
Host | 給出接收請求服務(wù)器的地址和端口號 |
Referer | 提供包含當(dāng)前請求URL的文檔的URL |
UA-color | 提供客戶端顯示器的顯示顏色有關(guān)的信息 |
UA-CPU | 給出客戶端CPU類型和制造商 |
UA-Disp | 提供了客戶端顯示器能力有關(guān)的信息 |
UA-OS | 提供客客戶機器上運行的操作系統(tǒng)和版本 |
UA-Pixels | 提供了客戶端顯示器的像素信息 |
User-Agent | 將發(fā)送請求的應(yīng)用程序名稱告知服務(wù)器 |
首部 | 描述 |
---|---|
Accept | 告訴服務(wù)器能夠發(fā)送哪些媒體類型 |
Accept-Charset | 告訴服務(wù)器能夠發(fā)送哪些字符集 |
Accept-Encoding | 告訴服務(wù)器能夠發(fā)送哪些編碼方式 |
Accept-Language | 告訴服務(wù)器能夠發(fā)送哪些語言 |
TE | 告訴服務(wù)器可以使用哪些擴展傳輸編碼 |
首部 | 描述 |
---|---|
Expect | 允許客戶端列出請求所要求的服務(wù)器行為 |
If-Match | 如果實體標(biāo)記與文檔當(dāng)前的實體標(biāo)記相匹配,就獲取這份文檔 |
If-Modify-Since | 除非在某個指定的日期之后資源被修改過,否則就限制這個請求 |
If-None-Match | 如果實體標(biāo)記與文檔當(dāng)前的實體不相符,就獲取文檔 |
If-Range | 允許對文檔的某個范圍就行條件請求 |
If-Unmodified-Since | 除非在某個指定日期之后資源沒有被修改過,否則就限制這個請求 |
Range | 如果服務(wù)器支持范圍請求,就請求資源的指定范圍 |
首部 | 描述 |
---|---|
Authorization | 包含了客戶端提供給服務(wù)器,以便對其自身進行數(shù)據(jù)驗證 |
Cookie | 客戶端用它想服務(wù)端發(fā)送一個令牌————它并不是真正的安全首部,確實隱含了安全功能 |
Cookie2 | 用來說明請求端支持的Cookie版本 |
首部 | 描述 |
---|---|
Max-Forward | 在通往服務(wù)器的的路徑上,將請求轉(zhuǎn)給其他代理或網(wǎng)關(guān)的最大次數(shù)————與TARCE方法一起使用 |
Proxy-Authorization | 與Authorization首部相同,但這個首部是在與代理進行認證時使用的 |
Proxy-Connection | 與Connection首部相同,但這個首部是在與代理建立連接時使用的 |
響應(yīng)報文有自己的首部集,以遍為客服端提供信息
響應(yīng)的信息性首部首部 | 描述 |
---|---|
Age | (從最初創(chuàng)建開始)響應(yīng)持續(xù)時間 |
Publick | 服務(wù)器為其資源支持的請求方法列表 |
Retry-After | 如果資源不可用的話,在此日期或時間重試 |
Server | 服務(wù)器應(yīng)用程序軟件的名稱和版本 |
Title | 對于html文檔來說,就是HTML文檔的源端給出的標(biāo)題 |
Wraning | 比原因短語中,更詳細的警告報文 |
首部 | 描述 |
---|---|
Accept-Ranges | 對此資源來說,服務(wù)器可接受的數(shù)據(jù)類型 |
Vary | 服務(wù)器查看其他首部 列表,可能會使響應(yīng)發(fā)生變化;也就是說,這是一個首部列表,服務(wù)器會根據(jù)這些首部的內(nèi)容挑選出最合適的資源版本發(fā)送給客戶端 |
首部 | 描述 |
---|---|
Proxy-Authenticate | 來自代理對客戶端的質(zhì)詢列表 |
Set-Cookie | 不是真正的安全首部,但隱含安全功能;可以在客戶端設(shè)置一個安全令牌,以遍服務(wù)端對客戶端進行標(biāo)志 |
Set-Cookie2 | 與Set-Cookie類似 |
WWW-Authenticate | 來自服務(wù)器對客戶端的質(zhì)詢列表 |
實體首部用于實體主體部分的首部
內(nèi)容首部首部 | 描述 |
---|---|
Content-Base | 解析主體中相對URL時使用的基礎(chǔ)URL |
Content-Enconding | 對主題執(zhí)行的任意編碼方式 |
Content-Language | 理解主體時最適宜使用的自然語言 |
Content-Length | 主體的長度或者尺寸 |
Content-Location | 資源實體所處的位置 |
Content-MD5 | 主體的MD5校驗和 |
Content-Range | 在整個資源中此實體表示的資源范圍 |
Content-Type | 這個主題的對象類型 |
首部 | 描述 |
---|---|
ETag | 與此實體相關(guān)的實體標(biāo)記 |
Expires | 實體不在有效,要從原始的源端再次獲取此實體的日期和時間 |
Last-Modified | 這個實體最后一次被修改的日期和時間 |
狀態(tài)碼為客戶端提供一種理解事務(wù)處理結(jié)果的快捷方式
100-199: 信息性狀態(tài)碼
狀態(tài)碼 | 原因短語 | 含義 |
---|---|---|
100 | Continue | 說明收到了客戶端的請求初始部分,請客戶端繼續(xù)。發(fā)送這個狀態(tài)碼后,服務(wù)端在收到請求后必須進行響應(yīng) |
101 | Switching Protocols | 說明服務(wù)器端正在根據(jù)客戶端的指定,將協(xié)議切換為Update首部所列的協(xié)議 |
200-299: 成功狀態(tài)碼
客戶端發(fā)送請求時,這些請求通常都是成功的
狀態(tài)碼 | 原因短語 | 含義 |
---|---|---|
200 | OK | 請求沒有問題,實體的主體部分包含請求的資源 |
201 | Created | 用于創(chuàng)建服務(wù)器的對象請求(比如 PUT),響應(yīng)的實體部分中應(yīng)該包含各種引用了以創(chuàng)建的資源的URL,Location首部包含的則是最具體的引用,服務(wù)器必須在發(fā)送這個狀態(tài)之前創(chuàng)建好對象 |
202 | Accepted | 請求已接受,但服務(wù)器還未對其執(zhí)行任何操作。不能保證服務(wù)器會完成這個請求,只是意味著接受請求時,它看起來是有效的。服務(wù)器應(yīng)該在實體的主體部分包含對請求狀態(tài)的描述,或許還應(yīng)該對請求完成時間的估計(或者包含一個指針,指向可以獲取此信息的位置) |
203 | Non-Authoritative Information | 實體首部包含的信息不是來自于源服務(wù)器,而是來自資源的一份副本。如果中間節(jié)點上有一份資源副本,但無法或者沒有對它所發(fā)送的資源有關(guān)的元信息(首部)進行驗證,就會出現(xiàn)這種情況 |
204 | No Content | 響應(yīng)報文中包含若干首部和一個狀態(tài)行,但沒有實體的主體部分。主要用于瀏覽器不轉(zhuǎn)為新文檔的情況下,對其進行更新(比如刷新一個表達頁面) |
205 | Reset Content | 另一個主要用于瀏覽器的代碼。負責(zé)告訴瀏覽器清除當(dāng)前頁面中的所有html標(biāo)簽 |
206 | Partail Content | 成功執(zhí)行一個部分或者Range請求。稍后我們會看到,客戶端可以通過一些特殊的首部來獲取部分或范圍內(nèi)的文檔————這個狀態(tài)碼就說明范圍請求成功響應(yīng)中必須包括Content-Range、Date和ETag或者Content-Location首部 |
300-399: 重定向狀態(tài)碼
重定向狀態(tài)碼要么告知客戶端使用替代位置來訪問它們感興趣的資源,要么提供一個可替代的響應(yīng)而不是資源的內(nèi)容。如果資源已被移動,可發(fā)送一個重定向狀態(tài)碼和一個可選的Location首部來告知客戶端資源已被移走,以及現(xiàn)在在哪里可以找到它
狀態(tài)碼 | 原因短語 | 含義 |
---|---|---|
300 | Multiple Choices | 客戶端請求實際是一個指向多個資源的URL時會返回這個狀態(tài)碼,比如服務(wù)器上某個HTML文檔有中文和英文版。返回這個代碼時會有一個選項列;這樣用戶就可以選擇他希望使用的一項 |
301 | Moved Permanently | 在請求URL已被移出時。響應(yīng)的Loaction首部中包含資源所處在的URL |
302 | Found | 與301類似;但是客戶端應(yīng)該使用Location首部給出的URL獲取臨時定位資源。將來的請求任使用老資源 |
303 | Set Ohter | 告訴客戶端應(yīng)該使用另外一個URL來獲取資源。新的URL資源位于響應(yīng)報文Location首部。其主要目的是允許POST請求的響應(yīng)將客戶端定向到某個資源上去 |
304 | Not Modify | 客戶端可以通過所包含的請求首部,使其請求變成有條件的。如果客戶端發(fā)送一個GET請求,而最近資源未改變的話,就可以用這個狀態(tài)碼來說明資源未被修改。帶有這個狀態(tài)碼的響應(yīng)不應(yīng)該包含實體部分 |
305 | Use Proxy | 用來說明必須通過一個代理來訪問資源。代理的位置由Location來給出。很重要的一點,客戶端是相對某個特定資源來解析這條響應(yīng)的,不能假定所有請求,甚至所有對持有所請求的服務(wù)器請求都通過這個代理進行。如果客戶端錯誤的讓代理介入某個請求,可能引發(fā)破壞性的行為,照成安全漏銅問題 |
306 | 未使用 | 未使用 |
307 | Temporary Redirect | 與301狀態(tài)碼類似;但客戶端應(yīng)該使用Location首部給出的URL來臨時定位資源。將來的資源應(yīng)該用老的URL |
400-499: 客戶端錯誤狀態(tài)碼
有時候客戶端會發(fā)送一個服務(wù)器無法處理的東西,比如格式錯誤的請求報文,或者最常見的時候一個不存在的URL
狀態(tài)碼 | 原因短語 | 含義 |
---|---|---|
400 | Bad Request | 用于告訴客戶端發(fā)送了一個錯誤的請求 |
401 | Unauthorized | 與適當(dāng)?shù)氖撞恳黄鸱祷?,在這個首部中請求客戶端在獲取資源的訪問權(quán)之前,對自己進行認證 |
402 | Payment Required | 狀態(tài)碼未使用 |
403 | Forbidden | 用于說明請求被服務(wù)器拒絕。如果服務(wù)器說明為什么拒絕請求,可以包含實體的主體部分進行描述。但這個狀態(tài)碼通常是服務(wù)器不想說明原因的時候使用 |
404 | Not Found | 用于說明服務(wù)器說明無法找到請求的URL。通常會包含一個實體,以便于客戶端應(yīng)用程序給用戶看 |
405 | Method Not Allowed | 發(fā)送的請求中帶有所請求的URL不支持的方法時,會使用此狀態(tài)碼。因該在響應(yīng)中包含Allow首部,以告訴客戶端對所請求的資源可以使用哪些方法 |
406 | Not Acceptable | 客戶端可以指定參數(shù)來說明它愿意接受什么類型的實體。服務(wù)器沒有與客戶端接受的URL相匹配的資源的時,使用此代碼。通常服務(wù)器會包含一些首部,以便客戶端弄清除為什么請求無法滿足 |
407 | Proxy Authentication Required | 與401相似,但用于要求對資源進行認證的代理服務(wù)器 |
408 | Request Timeout | 如果客戶端請求的時間太長,服務(wù)器可以返回此狀態(tài)碼,并關(guān)閉連接。超時時常隨服務(wù)器不同而不同,但通常對所有合法服務(wù)器來說,都是夠長的 |
409 | Conflict | 用于說明請求可能在資源上引發(fā)了一些沖突。服務(wù)器擔(dān)心會引發(fā)沖突,可以發(fā)送此狀態(tài)碼。響應(yīng)中應(yīng)該包含描述沖突的主體 |
410 | Gone | 與404類似,只是服務(wù)器曾經(jīng)擁有過此資源。主要用于Web站點的維護,這樣服務(wù)器管理者就可以在資源被移除的情況下通知客戶端 |
411 | Length Required | 服務(wù)器要求請求報文中包含Content-length時使用 |
412 | Precondition Falied | 客戶端發(fā)送請求條件,且其中一個條件失敗的時候使用??蛻舳税薊xpect首部時發(fā)送的就是條件請求 |
413 | Request Entiny Too large | 客戶端發(fā)送的實體主體部分比服務(wù)器能夠或者希望處理的要大時,使用此狀態(tài)碼 |
414 | Request Url Too Long | 客戶端發(fā)送的請求中的請求URL比服務(wù)器能夠或者希望處理的要長時,使用此狀態(tài)碼 |
415 | Unsupported Media Type | 服務(wù)端無法理解或支持客戶端發(fā)送實體的內(nèi)容類型時,使用此狀態(tài)碼 |
416 | Request Range Not Satisfiable | 請求報文是請求資源的某個范圍,而此范圍無效或無法滿足時,使用此狀態(tài)碼 |
417 | Expection Failed | 請求的Expect請求包含了一個期望,但服務(wù)器無法滿足此期望時,使用此狀態(tài)碼。如果代理或其他中間程序有確切證據(jù)說明源服務(wù)區(qū)器端會為請求產(chǎn)生一個失敗期望,就可以發(fā)送這個狀態(tài)碼 |
500-599: 服務(wù)端錯誤狀態(tài)碼
有時候客戶端發(fā)送一個請求,服務(wù)器自身發(fā)生錯誤時
狀態(tài)碼 | 原因短語 | 含義 |
---|---|---|
500 | Internal Server Error | 服務(wù)器遇到一個妨礙它為請求提供服務(wù)的錯誤時,使用此狀態(tài)碼 |
501 | Not Inplemented | 客戶端發(fā)送請求時超出服務(wù)器的能力范圍,使用此狀態(tài)碼 |
502 | Bad Gateway | 作為代理或網(wǎng)關(guān)使用服務(wù)器從響應(yīng)鏈的下一條鏈路上收到一條偽響應(yīng)時,使用此狀態(tài)碼 |
503 | Service Unavailable | 用來說明服務(wù)器現(xiàn)在無法為請求提供服務(wù),但將來可以。如果服務(wù)器知道資源什么時候可用,可以在響應(yīng)中包含一個Retry-after首部 |
504 | Gateway Timeout | 與狀態(tài)碼408類似,只是這里的響應(yīng)來自一個網(wǎng)關(guān)或代理,他們在等待另一服務(wù)器對其請求進行響應(yīng)時超時了 |
505 | HTTP Version Not Supported | 服務(wù)器收到的請求使用了它無法或不愿支持的協(xié)議版本,使用此狀態(tài)碼。有些服務(wù)器應(yīng)用程序選擇不支持協(xié)議的早早期版本 |
在github上編輯此頁
博主個人博客
參考:http協(xié)議
[http權(quán)威指南]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/93853.html
摘要:如地址端口號組成了所謂的,是網(wǎng)絡(luò)上運行的程序之間雙向通信鏈路的終結(jié)點,是和的基礎(chǔ)套接字網(wǎng)絡(luò)上具有唯一標(biāo)識的地址和端口組合在一起才能構(gòu)成唯一能識別的標(biāo)識符套接字。 更多物聯(lián)網(wǎng)高并發(fā)編程知識請移步:https://www.yuque.com/shizhiy... Java Socket編程之常識網(wǎng)絡(luò)基礎(chǔ)知識 網(wǎng)絡(luò)基礎(chǔ)知識(參考計算機網(wǎng)絡(luò))? 《TCP/IP協(xié)議棧及OSI參考模型詳解》? ...
摘要:而實際上,網(wǎng)絡(luò)存儲和網(wǎng)絡(luò)連接的系統(tǒng)相比并沒有多少不同。網(wǎng)絡(luò)存儲具有在網(wǎng)絡(luò)上提供存儲服務(wù)的能力。了解存儲的第一步,便是關(guān)于存儲的分類與一些基本的定義,下面一起來看一看。存儲是一件復(fù)雜的事情,在經(jīng)歷過電腦運算能力和網(wǎng)絡(luò)互連能力兩次快速發(fā)展之后,人們對于網(wǎng)絡(luò)的需求不再滿足于連通能力,而傾向于更為強大的信息管理能力。隨著越來越多的關(guān)鍵信息轉(zhuǎn)化為數(shù)字形式并存儲在可管理的介質(zhì)中,網(wǎng)絡(luò)對于存儲和管理信息的...
摘要:簡介什么是前端說這個之前,我們先了解前端工程師是干什么的,百度百科的解釋前端開發(fā)工程師,主要職責(zé)是利用等各種技術(shù)進行客戶端產(chǎn)品的開發(fā)。簡介 1.什么是web前端 說這個之前,我們先了解web前端工程師是干什么的,百度百科的解釋: Web前端開發(fā)工程師,主要職責(zé)是利用(X)HTML/CSS/JavaScript/Flash等各種Web技術(shù)進行客戶端產(chǎn)品的開發(fā)。完成客戶端程序(也就是瀏覽器端...
摘要:使用簡記后端掘金全稱為即消息隊列。優(yōu)測優(yōu)社區(qū)干貨精選老司機亂談編輯器之神掘金前言是一種信仰,我自從年有了這個信仰,已經(jīng)個年頭了。 PHP 程序員進階學(xué)習(xí)書籍參考指南 - 后端 - 掘金PHP程序員進階學(xué)習(xí)書籍參考指南 @heiyeluren lastmodify: 2016/2/18 ... 當(dāng)我們在談?wù)撉岸思用軙r,我們在談些什么 - 前端 - 掘金潘建旭,豈安科技(www.bigse...
閱讀 627·2021-08-31 09:45
閱讀 1724·2021-08-11 11:19
閱讀 951·2019-08-30 15:55
閱讀 903·2019-08-30 10:52
閱讀 2929·2019-08-29 13:11
閱讀 2996·2019-08-23 17:08
閱讀 2899·2019-08-23 15:11
閱讀 3141·2019-08-23 14:33