1. 程式人生 > 其它 >應用層之HTTP

應用層之HTTP

應用層

解決通過應用程序的互動來實現特定網路應用的問題。

這個定義完全不知所云。所以直接講應用,拿我們正常的上網來說:

https://www.cnblogs.com/iron2222/

看一下這個部落格網址的組成,這就是全球資訊網WWW應用,其相關應用層協議為超文字傳送協議HTTP

HTTP的基本概念

HTTP超文字傳輸協議,英文全稱:Hyper Text Transfer Protocol

其實該協議可以拆分成三個部分:

  • 超文字
  • 傳輸
  • 協議

協議

什麼是協議?

協,代表是多個參與者;儀,說明這是一種行為規範。

HTTP協議就相當於計算機世界裡進行各個計算機之間進行溝通的行為準則。

傳輸

傳輸,有來有回,所以HTTP是一個雙向協議。

超文字

簡單來說,就是超越了普通文字的文字,包羅了文字、圖片、音訊、視訊等,最關鍵的是有超連結,可以實現超文字之間的跳轉。

HTTP的請求響應過程

看圖:

其實也沒怎麼懂是啥意思。

永續性連線與非永續性連線

HTTP就是典型的非永續性連線。

因為每次TCP在傳遞完報文之後,都會斷開,每個TCP連線之傳輸一個請求報文和響應報文。

缺點:

  • 必須為每一個請求物件都建立和維護一個全新的連線
  • 因為要為TCP分配緩衝區,這就給伺服器造成了很大的負擔

其實細心的話你就會發現:

https://www.cnblogs.com/iron2222/

http後面有一個s,這是為什麼呢?

原來HTTP協議,屬於明文協議,不安全,後來就加入了新的安全協議SSL/TLS。

HTTP報文格式

由三大部分組成:

  • 起始行 start line:描述請求和響應的基本資訊
  • 頭部欄位 header:使用key-value形式更詳細的說明報文
  • 訊息正文 entity:實際傳輸的資料,文字,圖片、視訊等二進位制資料

請求報文:

響應報文:

兩者只有請求頭是不一樣的。

HTTP特點

  • 簡單,報文格式:header+bady,,頭部:key+value
  • 靈活易於擴充套件
  • 應用廣泛、跨平臺