1. 程式人生 > >HTTP請求與伺服器響應全流程

HTTP請求與伺服器響應全流程

1. HTTP 簡介

    1.1定義

    1.2 請求/響應報文格式

    1.3請求方式–GET/POST 狀態碼

    1.4 響應狀態

  2. HTTP請求,瀏覽器做了什麼, 服務端處理解析過程

1:HTTP簡介

  1.1

  HTTP(HyperText Transfer Protocol,超文字傳輸協議)最早就是計算機與計算機之間溝通的一種標準協議,這 種協議限制了通訊內容的格式以及各項內容的含義。

  隨著時代的發展,技術的變遷,這種協議現在廣泛的應用在各種領域,也不僅僅侷限於計算機與計算機之間,手 機、電視等各種智慧裝置很多時候都在使用這種協議通訊,所以一般現在稱 HTTP 為端與端之間的通訊協議。

這裡寫圖片描述

  Web 屬於 B/S 架構的應用軟體,在 B/S 架構中,瀏覽器與伺服器溝通的協議就是 HTTP 協議,作為一個合格的 Web 開發者,瞭解 HTTP 協議中約定的內容是一門必修課。

  應用軟體架構一般分為兩類: B/S 架構:Browser(瀏覽器) ←→ Server(伺服器),這種軟體都是通過瀏覽器訪問一個網站使用, 伺服器提供資料儲存等服務。 C/S 架構:Client(客戶端) ←→ Server(伺服器),這種軟體通過安裝一個軟體到電腦,然後使用, 伺服器提供資料儲存等服務。

  1.2請求報文的格式

  請求行 —》請求方式 請求路徑 HTTP協議版本 (一般GET請求主觀上都是去‘拿東西’,所以使用需要看情況)

  請求頭 —》客戶端想要告訴服務端的一些額外資訊

  空行

  請求體 —》客戶端想要傳送給服務端的資料正文

    
這裡寫圖片描述
  

  1.3請求的方式GET/POST 狀態碼

  根據HTTP標準,HTTP請求可以使用多種請求方法。

  HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。

  HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

具體的請檢視官方文件:

   狀態碼:瞭解即可

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

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

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

  3xx:重定向 —— 要完成請求必須進行更進一步的操作。

  4xx:客戶端錯誤 —— 請求有語法錯誤或請求無法實現。

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

  常見狀態程式碼、狀態描述的說明如下。

  200 OK:客戶端請求成功。

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

  401 Unauthorized:請求未經授權,這個狀態程式碼必須和 WWW-Authenticate 報頭域一起使用。

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

  404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL。

   500 Internal Server Error:伺服器發生不可預期的錯誤。 503 Server Unavailable:伺服器當前不能處理客戶端的請求,一段時間後可能恢復正常。

這裡寫圖片描述

  1. HTTP請求,瀏覽器做了什麼, 服務端處理解析過程
      下面這張圖我覺得比任何文字描述都清晰了,我這裡就不再做詳細介紹了,此圖根據不同的作業系統,會有不同的概念,此為:Windows下的Apache+PHP環境。

這裡寫圖片描述

 結語:以上過程僅是個人理解,或許有錯誤的地方,也或者有還未理解到的層面,如果看到有錯誤或者有所指點的還希望不吝賜教指正!抱拳,感謝!O(∩_∩)O哈哈~附上個人部落格:https://dobinspark.com.cn/