什麼是 HTTP?
HTTP 是 **H**yper **T**ext **T**ransfer **P**rotocol(超文字傳輸協議)的縮寫
WWW 關於 **客戶端** 和 **伺服器** 之間的通訊
客戶端計算機和 Web 伺服器之間的通訊是透過傳送 **HTTP 請求** 和接收 **HTTP 響應** 來完成的
全球資訊網通訊
全球資訊網(World Wide Web)是關於 Web **客戶端** 和 Web **伺服器** 之間通訊的。
**客戶端** 通常是瀏覽器(Chrome、Edge、Safari),但也可以是任何型別的程式或裝置。
**伺服器** 通常是雲端的計算機。
Web 客戶端
雲
Web 伺服器
HTTP 請求 / 響應
客戶端和伺服器之間的通訊是透過 **請求** 和 **響應** 來完成的
- 客戶端(瀏覽器)向 Web 傳送一個 **HTTP 請求**
- Web 伺服器接收到請求
- 伺服器執行應用程式來處理請求
- 伺服器向瀏覽器返回一個 **HTTP 響應**(輸出)
- 客戶端(瀏覽器)接收到響應
HTTP 請求迴圈
一個典型的 HTTP 請求 / 響應迴圈
- 瀏覽器請求一個 HTML 頁面。伺服器返回一個 HTML 檔案。
- 瀏覽器請求一個樣式表。伺服器返回一個 CSS 檔案。
- 瀏覽器請求一個 JPG 圖片。伺服器返回一個 JPG 檔案。
- 瀏覽器請求 JavaScript 程式碼。伺服器返回一個 JS 檔案。
- 瀏覽器請求資料。伺服器返回資料(XML 或 JSON 格式)。
XHR - XML Http Request
所有瀏覽器都內建了 **XMLHttpRequest 物件 (XHR)**。
XHR 是一個 JavaScript 物件,用於在 Web 瀏覽器和 Web 伺服器之間傳輸資料。
XHR 通常用於請求和接收資料,以便修改網頁。
儘管名稱中包含 XML 和 Http,但 XHR 可用於 HTTP 以外的協議,並且資料可以是多種不同型別,例如 HTML、CSS、XML、JSON 和純文字。
XHR 物件是 **Web 開發者的夢想**,因為您可以
- 更新網頁而無需重新載入頁面
- 頁面載入後從伺服器請求資料
- 從伺服器接收資料 - 在頁面載入後
- 在後臺向伺服器傳送資料