LESSON-03 · TOPIC 04

GET query string 與 POST 概念差異

能從 URL 與 Network request 位置說明 GET query 和 POST body 的概念差異。

code-edit多頁導覽與原生表單|GET query string 與 POST 概念差異本頁只練一個責任

本頁只練什麼

能從 URL 與 Network request 位置說明 GET query 和 POST body 的概念差異。

查詢狀態常用 GET;把個資放 URL 會進入歷史、log 與分享網址,因此必須知道資料位置。

要修改的檔案:files/starter/contact.html

定位:先確認每個需提交欄位有 name。|依 module-4 定位,只修改「GET query string 與 POST 概念差異」的責任。

任務情境

先結果,再原理;完成後要能說出自己看見的證據。

現在的問題

團隊說表單是 GET,卻無法在網址與 Network 指出 payload。

起始狀態:URL 沒有 query,output 尚未顯示參數。

完成後要看到

location.search 含 service/name,paramCount=2,remote request=0。

驗收證據:search 含 service/name、paramCount=2、href 有問號且零遠端請求

何時會用到

GET 用於無副作用、可分享查詢;POST 用於提交、建立或較多 payload。

常見混淆:POST 不等於安全或加密;GET 也不等於只能取得靜態檔案。

觀念與最小範例

這段程式是理解起點,不是要你直接跳過 Starter。

GET query string 與 POST 概念差異 GET query string versus POST request body

GET 常把欄位放到網址問號後;POST 通常把資料放 request body,但不因此自動加密。

正式說法:GET form 將 successful controls 編碼為 URL query;POST 使用 request body,保密性仍取決於 HTTPS 與系統處理。

URLSearchParams 將 service=audit 與 name=An 編成 query。

三步完成本主題

每一步都留下可觀察結果;如果沒看到,先看「卡住先查」。

  1. Step 1|先看見目前缺口,不急著貼答案。

    檔案:files/starter/contact.html 定位:先確認每個需提交欄位有 name。

    要做:先重新載入 Starter,記錄目前畫面、DOM、Computed、Console 或文件內容。

    預期:能指出「先確認每個需提交欄位有 name。」目前的缺口。

    證據:保存 files/starter/contact.html 的目前狀態,並指出下一步只會修改哪個檔案責任。

    卡住先查:確認開啟的是 files/starter/contact.html,且定位到 先確認每個需提交欄位有 name。。

  2. Step 2|只修改本主題的一個責任。

    檔案:files/starter/contact.html 定位:先確認每個需提交欄位有 name。

    要做:以兩個本地參數建立 query,用 history.replaceState 更新 URL 並顯示結果。

    預期:location.search 含 service/name,paramCount=2,remote request=0。

    證據:search 含 service/name、paramCount=2、href 有問號且零遠端請求

    卡住先查:先確認每個需提交欄位有 name。

  3. Step 3|重新載入並以證據驗收,不以『看起來差不多』判定完成。

    檔案:files/starter/contact.html 定位:先確認每個需提交欄位有 name。

    要做:重新整理頁面,再逐項比對預期結果與 evidence。

    預期:location.search 含 service/name,paramCount=2,remote request=0。

    證據:search 含 service/name、paramCount=2、href 有問號且零遠端請求

    卡住先查:先確認每個需提交欄位有 name。

觀察示範

這個示範只讓你看懂概念,不會替你修改 Starter,也不會自動宣告完成。

GET query string 與 POST 概念差異runtime fixture · read-only demo
本主題示範畫面:
尚無 query

驗收證據

勾選只是學習紀錄;真正完成仍要回到 Starter 的實際結果。

提示 1|方向

先從 URL 問號後面找參數。

提示 2|關鍵片段

以 URLSearchParams 編碼兩個有 name 的欄位。

提示 3|完整解答與原因

完整解答與原因:建立 service/name 的 URLSearchParams 並寫進當前 search;因為 GET 的 successful controls 會編碼在 query,POST 則放 request body。

完成後進入下一階段,或回到入口選下一個 topic。

開始 Starter →回到主題清單