HTTP協議簡單介紹

來源:互聯網
上載者:User

標籤:申請認證   type   訪問   src   開啟   80連接埠   data-   基礎上   ip 協議   

協議

協議是通訊電腦雙方必須共同遵從的一組約定。如怎麼樣建立串連、怎麼樣互相識別等。只有遵守這個約定,電腦之間才能相互連信交流。它的三要素是:文法、語義、時序。

簡單來說,協議就是 通訊雙方/多方都遵從共同的一個規範。

協議的一些特點:

1) 協議中的每個人都必須瞭解協議,並且預Crowdsourced Security Testing道所要完成的所有的步驟。

2) 協議中的每個人都必須同意並遵循它。

3) 協議必須是清楚的,每一步必須明確定義,並且不會引起誤解。

HTTP是一個應用程式層協議,由請求和響應構成,是一個標準的用戶端伺服器模型。HTTP是一個無狀態的協議。

在Internet中所有的傳輸都是通過TCP/IP進行的。HTTP協議作為TCP/IP模型中應用程式層的協議也不例外。HTTP協議通常承載於TCP協議之上,有時也承載於TLS或SSL協議層之上,這個時候,就成了我們常說的HTTPS。如所示:

HTTP/HTTPS協議簡介

HTTP協議:超文字傳輸通訊協定 (HTTP)(HyperText Transfer Protocol)是互連網上應用最為廣泛的一種網路通訊協定。主要被用於在Web瀏覽器和網站伺服器之間傳遞資訊。 HTTP 是基於 TCP/IP 協議的應用程式層協議。預設使用80連接埠。最新版本是HTTP 2.0,目前是用最廣泛的是HTTP 1.1。

HTTPS協議:簡單來說,可以理解為安全版的HTTP協議,基於TCP/IP協議和SSL/TLS協議之上的應用程式層協議。預設連接埠443。

HTTP協議和HTTPS協議的區別

HTTP協議以明文方式發送內容,不提供任何方式的資料加密,如果攻擊者截取了Web瀏覽器和網站伺服器之間的傳輸報文,就可以直接讀懂其中的資訊,因此HTTP協議不適合傳輸一些敏感資訊,比如密碼等。

為瞭解決HTTP協議的這一缺陷,需要使用另一種協議:安全通訊端層超文字傳輸通訊協定 (HTTP)HTTPS。為了資料轉送的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠認證來驗證伺服器的身份,並為瀏覽器和伺服器之間的通訊加密。

HTTPS和HTTP的區別主要為以下四點:

  1. https協議需要到ca申請認證,一般免費認證很少,需要交費。
  2. http是超文字傳輸通訊協定 (HTTP),資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。
  3. http和https使用的是完全不同的串連方式,用的連接埠也不一樣,前者是80,後者是443。
  4. http的串連很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路通訊協定,比http協議安全。
HTTP協議工作流程
  1. 用戶端和伺服器之間建立一條串連
  2. 串連建立後,用戶端向伺服器發起一個請求(request)
  3. 伺服器收到一個請求後,給用戶端一個響應(應答,response)
  4. 用戶端收到響應後做進一步處理

HTTP是基於傳輸層的TCP協議,而TCP是一個端到端的連線導向的協議。所謂的端到端可以理解為進程到進程之間的通訊。所以HTTP在開始傳輸之前,首先需要建立TCP串連,而TCP串連的過程需要所謂的“三向交握”。所示TCP串連的三向交握。
在TCP三向交握之後,建立了TCP串連,此時HTTP就可以進行傳輸了。一個重要的概念是連線導向,既HTTP在傳輸完成之間並不斷開TCP串連。在HTTP1.1中(通過Connection頭設定)這是預設行為。
HTTP協議主要特點:無狀態

HTTP是一個連線導向的無狀態協議。

無狀態:同一個用戶端的這次請求和上次請求是沒有對應關係,對http伺服器來說,它並不知道這兩個請求來自同一個用戶端。這意味著,每一個請求的是獨立的,任何兩個請求之間無任何記憶關係。如果服務端處理一個請求需要前面的資訊,則該資訊必須重傳。這樣做的話,在服務端處理不需要先前資訊的請求時,它的應答會比較快。

除了上面這個特點,還有幾個其他小特點:

  1. 支援客戶/伺服器模式。支援基本認證和安全認證。
  2. 簡單快速:客戶向伺服器請求服務時,只需傳送要求方法和路徑。要求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯絡的類型不同。由於HTTP協議簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快。
  3. 靈活:HTTP允許傳輸任意類型的資料對象。正在傳輸的類型由Content-Type加以標記。
  4. 在HTTP/1.1之前,使用非持續串連,用戶端(瀏覽器)和伺服器每次串連只處理一個請求。伺服器處理完用戶端的請求,對用戶端做出應答後,即中斷連線。HTTP/1.1開始,預設都開啟了Keep-Alive,保持串連特性,簡單地說,當一個網頁開啟完成後,用戶端和伺服器之間用於傳輸HTTP資料的TCP串連不會關閉,如果用戶端再次訪問這個伺服器上的網頁,會繼續使用這一條已經建立的串連。Keep-Alive不會永久保持串連,它有一個保持時間,可以在不同的伺服器軟體(如Apache)中設定這個時間。

要求方法
HTTP/1.1協議中共定義了八種方法(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:
OPTIONS - 返回伺服器針對特定資源所支援的HTTP要求方法。也可以利用向Web伺服器發送‘*‘的請求來測試伺服器的功能性。
HEAD- 向伺服器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以擷取包含在響應訊息頭中的元資訊。該方法常用於測試超連結的有效性,是否可以訪問,以及最近是否更新。
GET - 向特定的資源發出請求。注意:GET方法不應當被用於產生“副作用”的操作中,例如在web app.中。其中一個原因是GET可能會被網路蜘蛛等隨意訪問。
POST - 向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
PUT - 向指定資源位置上傳其最新內容。
DELETE - 請求伺服器刪除Request-URI所標識的資源。
TRACE- 回顯伺服器收到的請求,主要用於測試或診斷。
CONNECT - HTTP/1.1協議中預留給能夠將串連改為管道方式的Proxy 伺服器。
PATCH - 用來將局部修改應用於某一資源,添加於規範RFC5789。
方法名稱是區分大小寫。當某個請求所針對的資源不支援對應的要求方法的時候,伺服器應當返回狀態代碼405(Method Not Allowed);當伺服器不認識或者不支援對應的要求方法的時候,應當返回狀態代碼501(Not Implemented)。
HTTP伺服器至少應該實現GET和HEAD方法,其他方法都是可選的。此外,除了上述方法,特定的HTTP伺服器還能夠擴充自訂的方法。

GET和POST的區別
1、GET提交的資料會放在URL之後,以?分割URL和傳輸資料,參數之間以&相連,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的資料放在HTTP包的Body中。
2、GET提交的資料大小有限制,最多隻能有1024位元組(因為瀏覽器對URL的長度有限制),而POST方法提交的資料沒有限制。
3、GET方式需要使用Request.QueryString來取得變數的值,而POST方式通過Request.Form來擷取變數的值。
4、GET方式提交資料,會帶來安全問題,比如一個登入頁面,通過GET方式提交資料時,使用者名稱和密碼將出現在URL上,如果頁面可以被緩衝或者其他人可以訪問這台機器,就可以從記錄獲得該使用者的帳號和密碼。

 

HTTP協議簡單介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.