賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架
哈囉大家好,我是古古
到上一篇文章為止,有介紹了 Spring MVC 的基本用法,那麼接著這篇文章,我們就會回頭來看 Http 協議中 http method 部分,並且也會詳細的介紹常見的 http method,也就是 GET 和 POST
在 Http reqeust 中,除了需要填上重要的 url 之外,另一個必填的資訊,就是 http method,沒有了 http method 和 url 的資訊,基本上是沒辦法發起一個 Http request 的,所以從此處也可知道 http method 的重要程度
Http method 表示的是這個 Http 請求所使用的「請求方法」,他的值有好幾種可以選,像是常用的有 GET、POST、PUT、DELETE..等等,不同的請求方法會有不同的特性,而這篇文章就會來詳細介紹使用最廣泛的兩個 http method,也就是 GET 和 POST
GET 是最常被使用的 Http method,大家可以把 GET 想像成是明信片的概念,所以換句話說的話,就是 「當你使用 GET 方法時,你所傳遞的參數就會被別人所看見」
補充:前端在發起 Http request 時,其實也是有能力傳遞參數給後端的,大家可以把這個「傳遞參數」想像成是 Java 裡面在 call 方法時的傳遞參數,只是前端是改成透過 Http request 中的格式傳遞參數而已,但他們的概念是類似的
為什麼說 GET 是明信片(傳遞參數會被別人看見),是因為 Http 協議規定,當使用 GET 請求時,前端只能夠將參數放在 url 的最後面,透過這個格式將參數傳遞給後端
以下面這張圖為例,當我們在 url 的最後面,寫上 id=123&name=Judy
時,就表示要傳遞 「id 為 123,並且 name 為 Judy」的參數資訊給後端,並且我們會給這種寫在 url 最後面的參數一個名字,叫做「query parameter」
也因為 GET 是將參數 (query parameter) 放在 url 的最後面,而 url 又是公開可見的,所以 「當你使用 GET 方法時,你所傳遞的參數就會被別人所看見」,因此才說 GET 是明信片的概念(也就是內容都會被別人看光光)
而不同於 GET,POST 做為第二常用的 Http method,大家可以把 POST 想像成是信封的概念,所以換句話說的話,就是 「當你使用 POST 方法時,你所傳遞的參數就可以隱藏起來,不被別人看見」
當我們使用 POST 請求時,Http 協議就規定「前端要將參數放在 request body 中做傳遞」,而由於 request body 會被封裝起來,因此參數不會洩漏,因此才說 POST 是信封的概念(也就是內容不會被其他人看到)
另外大家在此處也可以發現,放在 request body 中的參數格式,是以 Json 格式來撰寫的!因此不僅是後端在回傳數據時會使用 Json 格式來回傳,其實前端在傳遞參數給後端時,也是使用 Json 格式來回傳,因此這也是為什麼 Json 格式這麼重要的原因,因為他實在是使用的太~~~頻繁了,不管大家是前端還是後端,都是很建議可以熟練掌握 Json 格式的!
補充:想了解 Json 格式的話,可以參考 Day 16 結構化的呈現數據 - Json 的文章介紹
這篇文章介紹了 Http method 中常用的兩個 method:GET 和 POST,並且也介紹了他們在傳遞參數之間的差別
那麼了解了 GET 和 POST 傳遞參數的差別之後,接著下一篇文章,我們就會回到 Spring Boot 上,來看一下要怎麼樣去接住前端所傳遞過來的參數,那我們就下一篇文章見啦!