在學習程式設計的過程中,我們常聽到許多結論,例如「Dictionary 很快」、「StringBuilder 一定比 + 快」、「async 一定能提升效能」,但這些說法真的永遠正確嗎?本系列將透過程式實驗、效能測試、圖解與原理分析,重新驗證每一個程式設計中常見的觀念與迷思。內容涵蓋 C#、資料結構、演算法、.NET Runtime 與 Framework,並以「提出問題、設計實驗、驗證結果、探討原理」為主軸,帶領讀者從「知道怎麼做」進一步理解「為什麼這麼做」,培養獨立思考與分析問題的能力,而不是只記住結論。
Day10,我終於讓自己寫的程式真正開始監聽網路連線。 透過: TcpListener 以及: AcceptTcpClient() 我的程式可以等待 Clien...
昨天已經成功讓瀏覽器連線到自己建立的 Server,也能看到瀏覽器傳來的 HTTP Request。 今天進一步想了解: 瀏覽器傳來的 GET /hello H...
昨天我已經成功把: GET /products HTTP/1.1 解析成: Method = GET Path = /products Version...
昨天已經成功完成: Browser↓HTTP Request↓解析 Path↓Routing↓找到 Handler↓執行 Handler 例如: /hello↓...
昨天我們第一次成功讓整個流程完整跑通: Browser↓HTTP Request↓Server↓Routing↓Handler↓HTTP Response↓Br...
昨天,我第一次建立了自己的 HttpResponse。 原本所有 Response 相關的資訊都散落在 Program.cs: StatusCodeStatus...
昨天,我第一次建立了自己的 HttpResponse。 原本所有 Response 相關的資訊都散落在 Program.cs 裡,包括 StatusCode、S...
前幾天,我們已經把 Request 慢慢整理成比較像 Framework 會使用的形式。 例如原本 Browser 傳來: GET /hello HTTP/1....
昨天研究 Query String 時,我們看到 Browser 可以把一些資料直接放在網址裡。 例如: /search?q=book 可以理解成: Path...
昨天理解 Request Body 之後,我開始知道,POST 傳來的資料可能會放在 Body 裡。 例如: {"name":"A...