淺談HTTP協議和TCP/IP

來源:互聯網
上載者:User

HTTP(HyperText Transfer Protocol):超文字傳輸通訊協定 (HTTP),是一種在互連網上廣泛使用的一種網路通訊協定,設計Http協議最初的目的是為了是為了提供一種接受和發布html頁面的一種方法。通過HTTP或者HTTPS協議請求的資源由統一資源標示符(Uniform Resource Identifiers,URI)來標識。

請求資訊:

發出的請求資訊包括以下幾個

•請求行 •例如GET /images/logo.gif HTTP/1.1,表示從/images目錄下請求logo.gif這個檔案。

•(請求)頭, •例如Accept-Language: en

•空行

•其他訊息體

請求行和標題必須以<CR><LF>作為結尾。空行內必須只有<CR><LF>而無其他空格。在HTTP/1.1協議中,所有的要求標頭,除Host外,都是可選的。

要求方法:

HTTP/1.1協議中共定義了八種方法(也叫“動作”)來以不同方式操作指定的資源:

•OPTIONS:這個方法可使伺服器傳回該資源所支援的所有HTTP要求方法。用'*'來代替資源名稱,向Web伺服器發送OPTIONS請求,可以測試伺服器功能是否正常運作。

•HEAD:與GET方法一樣,都是向伺服器發出指定資源的請求。只不過伺服器將不傳回資源的本文部份。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以擷取其中“關於該資源的資訊”(元資訊或稱中繼資料)。

•GET:向指定的資源發出“顯示”請求。使用GET方法應該只用在讀取資料,而不應當被用於產生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網路蜘蛛等隨意訪問。

•POST:向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。資料被包含在請求本文中。這個請求可能會建立新的資源或修改現有資源,或二者皆有。

•PUT:向指定資源位置上傳其最新內容。

•DELETE:請求伺服器刪除Request-URI所標識的資源。

•TRACE:回顯伺服器收到的請求,主要用於測試或診斷。

•CONNECT:HTTP/1.1協議中預留給能夠將串連改為管道方式的Proxy 伺服器。通常用於SSLData Encryption Service器的連結(經由非加密的HTTPProxy 伺服器)。

方法名稱是區分大小寫。當某個請求所針對的資源不支援對應的要求方法的時候,伺服器應當返回狀態代碼405(Method Not Allowed),當伺服器不認識或者不支援對應的要求方法的時候,應當返回狀態代碼501(Not Implemented)。

HTTP伺服器至少應該實現GET和HEAD方法,其他方法都是可選的。當然,所有的方法支援的實現都應當符合下述的方法各自的語義定義。此外,除了上述方法,特定的HTTP伺服器還能夠擴充自訂的方法。例如:

•PATCH(由RFC5789指定的方法):用於將局部修改應用到資源。

•響應

在接收和解釋請求訊息後,伺服器返回一個HTTP響應訊息。

HTTP響應也是由三個部分組成,分別是:狀態行、訊息前序、響應本文

1、狀態行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示伺服器HTTP協議的版本;Status-Code表示伺服器發回的響應狀態碼;Reason-Phrase表示狀態碼的文本描述。

狀態碼有三位元字組成,第一個數字定義了響應的類別,且有五種可能取值:

1xx:指示資訊--表示請求已接收,繼續處理

2xx:成功--表示請求已被成功接收、理解、接受

3xx:重新導向--要完成請求必須進行更進一步的操作

4xx:用戶端錯誤--請求有語法錯誤或請求無法實現

5xx:伺服器端錯誤--伺服器未能實現合法的請求

常見狀態碼、狀態原因、說明:

200 OK      //用戶端請求成功

400 Bad Request  //用戶端請求有語法錯誤,不能被伺服器所理解

401 Unauthorized //請求未經授權,這個狀態碼必須和WWW-Authenticate前序域一起使用

403 Forbidden  //伺服器收到請求,但是拒絕提供服務

404 Not Found  //請求資源不存在,eg:輸入了錯誤的URL

500 Internal Server Error //伺服器發生不可預期的錯誤

503 Server Unavailable  //伺服器當前不能處理用戶端的請求,一段時間後可能恢複正常

eg:HTTP/1.1 200 OK (CRLF)

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.