GET 是最常使用的 Http Method,大家可以把 GET 想像成是「明信片」的概念,所以換句話說,就是 「當你使用 GET 來請求時,你所傳遞的參數就會被別人看見」。
也因為當前端使用 GET 來請求時,他所傳遞的參數是完全公開、可以被大家所看見的,因此這就像是明信片一樣,你所寫的信件內容全部都會被大家所看見,所以才會說 GET 是明信片的概念。
以下面這張圖為例,當我們使用 GET 來請求時,如果我們想要傳遞參數的話,那就只能夠在 url 的最後面,寫上 id=123&name=Judy
的字串,表示我們要傳遞兩個參數, 一個是「id 為 123」,另一個則是「name 為 Judy」。
而在撰寫 GET 請求的參數時,有兩個重點要注意:
key=value
的格式來撰寫,像是 id=123
就是表示「id 的值為 123」的意思&
隔開,像是在上面的例子中,在 id=123
這組參數後面,就要先寫上一個 &
,後面才可以寫上下一組參數 name=Judy
另外這種「添加在 url 後面的參數們」,我們會稱呼這些參數為「query parameter」,因此在上圖中的 id=123&name=Judy
,他們就稱為是 query parameter。
所以總結來說,當前端使用 GET 來請求時,前端就必須將參數(query parameter)添加在 url 的最後面,同時也因為 url 是公開的、所有人都能看見,因此當前端使用 GET 來請求時,他所傳遞的參數就會被別人看見,所以 GET 也被稱為是「明信片」的概念。
了解了 GET 的用法之後,接下來我們也可以來看一下 POST 的用法和特性。
POST 作為也很常使用的 Http method 之一,他就和 GET 完全不一樣了!大家可以把 POST 想像成是「信封」的概念,因此「當你使用 POST 方法時,你所傳遞的參數就可以隱藏起來,不被別人看見」。
POST 之所以可以隱藏參數,就是因為在使用 POST 請求時,前端要將「參數放在 request body 中傳遞」,並且 request body 在傳遞的過程中會整個被封裝起來,不會被別人看見,因此放在裡面的參數就不會洩漏,所以才會說 POST 是信封的概念(因為請求的參數不會被別人看見)。
舉例來說,當我們使用 POST 來請求時,就可以使用 JSON 格式,將「id 的值為 123、name 的值為 Judy」的資訊,放在 request body 中來傳遞:
因此當前端使用 POST 來請求時,前端就可以將參數放在 request body 中來傳遞,又因為 request body 在傳遞的過程中是封裝起來、不會被別人看見的,因此當前端使用 POST 來請求時,他所傳遞的參數就可以隱藏起來,不被其他人看見,所以 POST 也被稱為是「信封」的概念。