1. 程式人生 > >HTTP協議基礎

HTTP協議基礎

  • 請求報文(request message)
    <method> <request-URL> <version>
    <headers>
    <entity-body>
  • 響應報文(response message)
    <version> <status> <reason-phrase>
    <headers>
    <entity-body> 方法
  • GET
    GET是最常用的方法,通常用於請求伺服器傳送某個資源。

  • HEAD
    HEAD方法和GET方法的行為類似,但伺服器在響應中只返回首部。不會返回實體的主體部分。這就允許客戶端在未獲取實際資源情況下,對資源的首部進行檢查。這可以驗證伺服器是否有效

  • PUT
    與GET從伺服器讀取文件相反,PUT方法會向伺服器寫入文件。

  • POST
    通常會用它來支援HTML的表單,表單中填好的資料通常會被送給伺服器,然後由伺服器將其傳送到其他的地方。

  • TRACE
    客戶端要發起一個請求時,這個請求可能要穿過防火牆、代理、閘道器或其他一些應用程式。每個中間節點都可能會修改原始的HTTP請求。TRACE允許客戶端在最終將請求傳送給伺服器時,看看它變成什麼樣子。
    TRACE請求會在目的伺服器發起一個"環回"診斷。行程最後一站的伺服器會彈回一條TRACE響應,並在響應主體中攜帶它收到的原始請求報文。這樣客戶端就可以檢視在所有中間HTTP應用程式組成的請求/響應鏈上,原始報文是否,以及如何被毀壞或修改。

  • TRACE方法主要用於診斷;但它確實也有缺點,它假定中間應用程式對各種不同型別請求(不同的方法--GET、HEAD、POST等)的處理是相同的。比如,代理可能將POST請求直接傳送給伺服器,而將GET請求傳送給另一個HTTP應用程式(比如Web快取)。TRACE不提供區分這些方法的機制。通常,中間應用程式會自行決定對TRACE請求的處理方式。
    TRACE請求中不能帶有實體的主體部分。TRACE響應的實體主體部分包含了響應伺服器收到的請求的精確副本。
  • OPTIONS
    OPTIONS方法請求Web伺服器告知其支援的各種功能。可以詢問伺服器通常支援哪些方法,或者對某些特殊資源支援哪些方法。(有些伺服器可能只支援對一些特殊型別的物件使用特定的操作)。
    這位客戶端應用程式提供了一種手段,使其不用實際訪問那些資源就能判斷訪問各種資源的最優方式。

  • DELETE
    DELETE方法所做的事情就是請求伺服器刪除請求URL所指定的資源。但是客戶端應用無法保證刪除操作一定會被執行。因為HTTP規範允許伺服器在不通知客戶端的情況下撤銷請求。