Awesome Online Exercises

前言 記錄一些好玩的線上練習網站 CSS CSS Dinner Flexbox Froggy Flex Pirate Grid Garden Git Learn Git Branching HTTP HTTP Challenge Network The Case of the Slow Websites The Case of the Connection Timeout The Case of the DNS Update that Didn’t Work The Case of the 50ms Request Regex RegexOne SQL W3Schools SQL Exercise SQLBolt XSS XSS game

July 17, 2021 · 1 min · Set Mao

HTTP GET method vs POST method

HTTP 的 method 中最常被用到的應該就是 GET 及 POST 了但是 GET 與 POST 除了使用場景不一樣之外,到底還有哪些區別呢? 我們知道 GET 通常都透過 query string 來傳遞參數,POST 則是使用 request body但是其實 GET 也可以透過 request body 來傳遞參數,同理 POST 其實也能使用 query string(只是上述兩種方式都不推薦) GET vs POST 差異點 POST 不會被 cache,GET 會 POST 不會出現在瀏覽器的訪問記錄裡,GET 會 POST 不能被存成書籤,GET 能 HTTP GET method vs POST method

July 4, 2021 · 1 min · Set Mao

HTTPS 加密了哪些東西?

HTTPS 會加密 path, query string, request body 但是 domain name 不一定會加密(如果沒有使用 SNI 才會把 domain name 加密)

July 4, 2021 · 1 min · Set Mao

從瀏覽器輸入網址到看到網頁到底發生了哪些事?

在 browser 輸入網址 browser 跟 OS 要網址的 IP address OS 向 DNS 查詢 IP address(如果有 cache 會直接回傳 IP address 給 OS) DNS 向 Name Server 查詢 IP address OS 將從 DNS/Name Server 查詢到的 IP address 回傳給 browser browser 拿到 IP address 後對 IP address 做 HTTP/HTTPS request 如果使用 HTTPS 會先使用 TLS 對憑證做認證並產生加密的 session key,並對 request 的資料內容作加密 browser 與 Server 做 TCP 的三項交握確認 Server 現在可以接收資料 Server 上的 Nginx/Apache 接收到 request,並將 request pass 到 code base 中(Python/PHP/JavaScript) code base 將 request 處理完之後回傳 response browser 接收到 response 後根據 response 的內容將頁面 render 出來

July 4, 2021 · 1 min · Set Mao