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