HTTP協議

HTTP協議~請求html

  • http請求=請求行 + 消息報頭 + 請求正文
    • 請求行以一個方法符號開頭,以空格分開,後面跟着請求的URI和協議的版本,格式以下:Method Request-URI HTTP-Version CRLF(eg:GET /form.html HTTP/1.1 (CRLF)
      • 其中 Method表示請求方法;
      • Request-URI是一個統一資源標識符;
      • HTTP-Version表示請求的HTTP協議版本;
      • CRLF表示回車和換行(除了做爲結尾的CRLF外,不容許出現單獨的CR或LF字符)。
  • 請求方法
    • GET 請求獲取Request-URI所標識的資源
    • POST 在Request-URI所標識的資源後附加新的數據
    • HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭
    • PUT 請求服務器存儲一個資源,並用Request-URI做爲其標識
    • DELETE 請求服務器刪除Request-URI所標識的資源
    • TRACE 請求服務器回送收到的請求信息,主要用於測試或診斷
    • CONNECT 保留未來使用
    • OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求

應用舉例:
GET方法:在瀏覽器的地址欄中輸入網址的方式訪問網頁時,瀏覽器採用GET方法向服務器獲取資源,eg:GET /form.html HTTP/1.1 (CRLF)
POST方法:要求被請求服務器接受附在請求後面的數據,經常使用於提交表單。
eg:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,… (CRLF)

HOST:www.guet.edu.cn (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF) //該CRLF表示消息報頭已經結束,在此以前爲消息報頭
user=jeffrey&pwd=1234 //此行如下爲提交的數據
HEAD方法與GET方法幾乎是同樣的,對於HEAD請求的迴應部分來講,它的HTTP頭部中包含的信息與經過GET請求所獲得的信息是相同的。利用這個方法,沒必要傳輸整個資源內容,就能夠獲得Request-URI所標識的資源的信息。該方法經常使用於測試超連接的有效性,是否能夠訪問,以及最近是否更新。瀏覽器



HTTP協議~響應服務器

  • 在接收和解釋請求消息後,服務器返回一個HTTP響應消息。
  • HTTP響應 = 狀態行 + 消息報頭 + 響應正文
    • 狀態行格式:HTTP-Version Status-Code Reason-Phrase CRLF
      • HTTP-Version表示服務器HTTP協議的版本;
      • Status-Code表示服務器發回的響應狀態代碼;
      • Reason-Phrase表示狀態代碼的文本描述;
      • CRLF表示回車和換行(除了做爲結尾的CRLF外,不容許出現單獨的CR或LF字符)。
    • 狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
      • 1xx:指示信息–表示請求已接收,繼續處理
      • 2xx:成功–表示請求已被成功接收、理解、接受
      • 3xx:重定向–要完成請求必須進行更進一步的操做
      • 4xx:客戶端錯誤–請求有語法錯誤或請求沒法實現
      • 5xx:服務器端錯誤–服務器未能實現合法的請求

eg:HTTP/1.1 200 OK (CRLF)jsp

常見狀態代碼:
200 OK //客戶端請求成功
400 Bad Request //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經受權,這個狀態代碼必須和WWW-Authenticate報頭域一塊兒使用
403 Forbidden //服務器收到請求,可是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable //服務器當前不能處理客戶端的請求,一段時間後可能恢復正常性能

相關文章
相關標籤/搜索