HTTP請求和響應2:方法(Method)
阿新 • • 發佈:2017-07-30
trace 行處理 診斷 ack 中間 delete nds 最優 eas
GET
通經常使用於請求server發送某個資源。HTTP/1.1要求server必須實現該方法,以下是一個HTTP請求:
HEAD
HEAD和GET類似,僅僅是server的響應中僅僅返回首部(沒有實體部分),一般用於:
1)在不獲取資源的情況下了解資源的狀況。
2)通過查看響應中的狀態碼,看看某個對象是否存在;
3)通過查看首部。測試資源是否被改動了。PUT
向server寫入文檔。就是讓server用請求的主體部分來創建一個由所請求的URL命名的新文檔,或者假設那個URL已經存在的話,就用這個主體來替代它。
請求報文:
響應報文:
POST
POST通經常使用來支持HTML的表單,表單中填好的數據被發送到server。server將其交給相應的程序進行處理。
請求報文:
服務端交由相應程序處理後,發送響應報文:
TRACE
client發起一個請求,請求可能會穿過防火墻、代理、網關或其它一些應用程序。每一個中間節點都可能會改動原始的HTTP請求。
OPTIONS
OPTIONS方法請求Webserver告知其支持的各種功能,這為client應用程序提供了一種手段。使其不用實際訪問那些資源就能判定訪問各種資源的最優方式。
請求報文:
DELETE
DELETE方法用於請server刪除請求URL所指定的資源。
擴展方法
HTTP被設計成字段可擴展的,擴展方法指的是沒有在HTTP/1.1中定義的方法,這些方法為開發人員提供了一種擴展這些HTTP服務能力的手段。
方法表明了client希望server對資源運行的動作。經常使用的方法包含:GET、HEAD、POST、PUT、TRACE、OPTIONS和DELETE,每一個server能夠實現這些方法中的部分或者所有。以下將對這些方法做一個具體的介紹。
GET
通經常使用於請求server發送某個資源。HTTP/1.1要求server必須實現該方法,以下是一個HTTP請求:
GET /seasonal/index-fall.html HTTP/1.1 Host: www.joes-hardware.com Accept: *響應報文例如以下:
HTTP/1.1 200 OK Content-Type: text/html Context-Length: 617 //body
HEAD
HEAD和GET類似,僅僅是server的響應中僅僅返回首部(沒有實體部分),一般用於:1)在不獲取資源的情況下了解資源的狀況。
2)通過查看響應中的狀態碼,看看某個對象是否存在;
3)通過查看首部。測試資源是否被改動了。
HEAD返回的首部應該和GET返回的首部全然同樣。
PUT
向server寫入文檔。就是讓server用請求的主體部分來創建一個由所請求的URL命名的新文檔,或者假設那個URL已經存在的話,就用這個主體來替代它。請求報文:
PUT /product-list.txt HTTP/1.1 Host: www.joes-hardware.com Content-type: text/plain Content-length: 34 //body
HTTP/1.1 201 Created Location: http://www.joes-hardware.com/product-list.txt Content-type: text/plain Context-length: 47 http://www.joes-hardware.com/product-list.txt
POST
POST通經常使用來支持HTML的表單,表單中填好的數據被發送到server。server將其交給相應的程序進行處理。請求報文:
POST /inventory-check.cgi HTTP/1.1 Host: www.joes-hardware.com Content-type: text/plain Content-length: 18 item-bandsaw 2647
HTTP/1.1 200 OK Content-type: text/plain Context-length: 37 The bandsaw model 2647 is in stock!
TRACE
client發起一個請求,請求可能會穿過防火墻、代理、網關或其它一些應用程序。每一個中間節點都可能會改動原始的HTTP請求。TRACE請求會在目地server端發起一個“環回”診斷,行程最後一站的server會彈回一條TRACE響應,並在響應主體中帶上收到的原始請求報文。這樣client能夠診斷原始報文是否被改動過。
請求報文:
TRACE /product-list.txt HTTP/1.1 Accept:* Host: www.joes-hardware.com報文經過代理server後:
TRACE /product-list.txt HTTP/1.1 Host: www.joes-hardware.com Accept: * Via: 1.1 proxy3.company.comserver彈回的TRACE響應:
HTTP/1.1 200 OK Content-type: text/plain Content-length: 96 TRACE /product-list.txt HTTP/1.1 Host: www.joes-hardware.com Accept: * Via: 1.1 proxy3.company.comTRACE響應經過代理server後:
HTTP/1.1 200 OK Content-type: text/plain Content-length: 96 Via: 1.1 proxy3.company.com TRACE /product-list.txt HTTP/1.1 Host: www.joes-hardware.com Accept: * Via: 1.1 proxy3.company.comTRACE方法主要用於診斷。它基本的缺陷是它假定中間應用程序對各種不同類型請求(GET、HEAD、POST等)的處理都是同樣的,假設實際情況不同,那麽診斷將不準確。
OPTIONS
OPTIONS方法請求Webserver告知其支持的各種功能,這為client應用程序提供了一種手段。使其不用實際訪問那些資源就能判定訪問各種資源的最優方式。請求報文:
OPTIONS * HTTP/1.1 Host: www.joes-hardware.com Accept: *響應報文:
HTTP/1.1 200 OK Allow: GET, POST, PUT, OPTIONS Context-length: 0
DELETE
DELETE方法用於請server刪除請求URL所指定的資源。
請求報文:
DELETE /product-list.txt HTTP/1.1 Host: www.joes-hardware.com響應報文:
HTTP/1.1 200 OK Content-type: text/plain Content-length: 54 //響應消息
擴展方法
HTTP被設計成字段可擴展的,擴展方法指的是沒有在HTTP/1.1中定義的方法,這些方法為開發人員提供了一種擴展這些HTTP服務能力的手段。
HTTP請求和響應2:方法(Method)