在現代網頁開發中,我們經常聽到關於AJAX的詞語,它代表著一項重要的技術,使我們能夠實現在不重新載入整個網頁的情況下,動態地獲取和顯示數據。
今天來認識一下什麼是AJAX以及與之相關的通訊協定和HTTP方法。
Ajax 是 Asynchronous JavaScript and XML 的縮寫。
它是一種前端開發技術,用於實現在不刷新整個網頁的情況下,動態地獲取和顯示資料。
所謂的AJAX技術在JavaScript中,即是以XMLHttpRequest
物件(簡稱為XHR)為主要核心的實作。
正如它的名稱,它是用於客戶端對伺服器端送出httpRequest(要求)的物件,使用的資料格式是XML格式(但現今AJAX通常使用JSON等格式來處理資料)。
流程即是建立一個XMLHttpRequest(XHR)物件,打開網址然後送出要求,成功時最後由回調函式處理伺服器傳回的Response(回應)。
要記住AJAX並不是單一的技術,而是一組綜合性的網頁開發技術。最早由Google在Gmail中使用,AJAX現在已成為Web開發的重要工具。
網絡應用程序的運行是基於客戶端-伺服器端(client-server)架構的。在這個架構中:
客戶端和伺服器通常運行在不同的計算機上,例如你的電腦和Google的伺服器。伺服器方擁有資源,客戶端會向伺服器發出請求,以獲取這些資源的內容。伺服器接收請求後,根據需要提供回應。
客戶端和伺服器之間的互動過程被稱為「請求-回應生命週期」(request-response life cycle)。
在全球資訊網(World Wide Web)上,我們使用HTTP(超文本傳輸協定)進行通訊。HTTP規定了請求和回應的結構:
裡面協定的細節真的太多了,我自己看得一個頭兩個大。因此我決定直接跳到method。
什麼是HTTP Method?
HTTP Method是用來指示對資源的操作。每個API都對應一個特定的HTTP請求方法,只有當方法與API完全一致時,伺服器才能根據請求提供資源;反之,方法與 API 無法對應時就會出現錯誤(404 找不到路徑)。
其實你在日常生活中已經不自覺的有使用過這個了。
在我們平常上網時,當我們輸入網址、按下 Enter 鍵瀏覽網頁的時候,此時瀏覽器會向指定網頁發送 GET 請求。
下面是一些常見的HTTP請求方法:
簡化並用成表格方式呈現:
方法 | 描述 |
---|---|
GET | 請求特定資源 |
POST | 提交資料以創建或更改資源 |
PUT | 取代或更新資源 |
PATCH | 更新資源的一部分 |
DELETE | 刪除特定資源 |
這些方法對應不同的操作,伺服器根據方法執行相應的操作。
剛剛介紹了客戶端(client-side)對伺服器端(server-side)的請求,那伺服器端(server-side)會以HTTP response 作為回應。
HTTP response的關鍵元素之一是Status Code。它提供有關請求狀態的信息。Status Code是一個三位數字,並且分為不同的類別:
HTTP response還包括 Headers,提供有關回應的附加信息。一些常見的標頭包括:
以上是簡略的介紹,如果有錯也請大家跟我說~
參考資料:
https://ithelp.ithome.com.tw/articles/10252553
https://ithelp.ithome.com.tw/articles/10247342
https://blog.techbridge.cc/2017/05/20/api-ajax-cors-and-jsonp/
https://eyesofkids.gitbooks.io/javascript-start-from-es6/content/part4/ajax_fetch.html