如何替Rocket框架的HTTP回應加上快取? 2019 年 8 月 10 日 Magic Len Rust HTTP協定提供了一些快取機制,最基本的就是Cache-Control。Cache-Control可以用來控制HTTP連線要如何被快取,例如最常見的用法就是透過「max-age」參數來設定快取時間,搭配「public」或是「private」參數來控制快取的可見程度。不過Rocket框架本身並沒有對Cache-Control提供直接的支援,所以使用起來不是很方便。 繼續閱讀
如何用Rocket框架取得客戶端的IP位址? 2019 年 8 月 8 日 Magic Len Rust 在開發Web服務的時候,我們可能會需要透過客戶端的IP位址,來協助判斷其所在的地區。一般來說,透過HTTP協定獲取客戶端IP的來源有三個地方,一個是Socket連線的IP位址,一個是HTTP請求中的「X-Real-IP」標頭欄位,一個是HTTP請求中的「X-Forwarded-For」標頭欄位。 繼續閱讀
如何用Rocket框架安全地讀取HTTP標頭中的Accept-Language欄位? 2019 年 8 月 6 日 Magic Len Rust 在實作多國語言的Web服務時,會需要去讀取客戶端傳送來的HTTP請求標頭中的「Accept-Language」欄位,來判斷客戶端偏好使用的語言。然而,Rocket框架並未內建解析「Accept-Language」欄位的功能,開發者只能自行去撰寫程式來想辦法用「Accept-Language」欄位的原始資料去做客戶端的語言判斷,不但麻煩又很不安全。 繼續閱讀
Linode 老牌、穩定、價格合理且機房遍布美、歐、亞洲的VPS主機 2019 年 8 月 4 日 Magic Len Linux、 網路相關、 網站應用 Linode是一間美國的虛擬專屬主機(VPS, Virtual Private Server)提供商,在美國的紐華克、亞特蘭大、佛蒙特、達拉斯,和英國的倫敦、德國的法蘭克福、日本的東京與新加坡等城市設有機房,使用者可以在數分鐘之內在Linode的網站上完成註冊並且利用網頁後台輕易地建立出各個不同地區、不同硬體規格的VPS。Linode的命名,是源自於「Linux」和「node」,也正如其名,Lin... 繼續閱讀
Linux作業系統如何安裝最新或是指定版本的Node.js? 2019 年 8 月 2 日 Magic Len Linux 我們常用的Node.js版本可分為三種,一種是當前正在積極開發的版本(Current),一種是最新的LTS版本(Active LTS),還有一種是上一代依然在維護中的LTS版本(Maintenance LTS)。若想在Linux作業系統上安裝Node.js,要怎麼樣才能夠安裝最新或是指定版本的Node.js呢? 繼續閱讀
如何正確設定Favicon?直接使用這個可以離線運行的Favicon產生器吧! 2019 年 7 月 31 日 Magic Len 作品分享、 網路相關、 軟體介紹 在設計網頁的時候,總會需要替自己的網頁設計一個適合的Favicon來作為招攬客人的門牌,然而很多人並不知道設計好的Favicon圖片檔案要如何才能正確地套用在自己的網頁上。如果我們向Google搜尋查詢Favicon產生器相關的關鍵字,可以找到很多網頁工具,能夠直接透過網頁瀏覽器將自己做好的Favicon圖片檔案上傳到別人的伺服器上,產生出favicon.ico等Favicon相關的檔案格式。這些... 繼續閱讀
Rust程式語言的幽靈資料(PhantomData)是什麼?它可以解決什麼樣的問題? 2019 年 7 月 29 日 Magic Len 研究分享、 Rust Rust程式語言有提供泛型和生命周期機制,在定義列舉或是結構體的時候,可以利用泛型來指定結構體的欄位型別,使我們在程式撰寫階段不必明確地限制住這個結構體到底能儲存哪些型別的資料。如果要進一步的限制泛型型別參數所代表的型別範圍,可以替泛型型別參數加上特性的限制,使其所對應的型別必須要有實作指定的特性。但是,當特性有使用到泛型生命周期參數的話,就可能會遇到一些問題了。 繼續閱讀
被Rc或是Arc等智慧型指標包裹的T: AsRef<u8>要怎麼才能當作Reader來用? 2019 年 7 月 27 日 Magic Len Rust 在開發Rust程式的時候,會使用到各式各樣別人開發的套件。這些套件雖然很方便,可以替我們節省不少開發時間,但是套件提供的API,卻不一定能夠完全滿足我們的需求。「Reader」的擁有權被取走,就是一個常見的例子。 繼續閱讀
Rocket入門指南 第十一章:測試 2019 年 7 月 25 日 Magic Len 研究分享、 Rust Rocket框架提供的測試架構十分簡單,只要產生出想要測試的Rocket實體,再將它提供給「local」模組下的「Client」結構體使用,Rocket應用程式就能搖身一變,可以直接用寫程式的方式來發送請求和接收回應。 繼續閱讀
Rocket入門指南 第十章:資料庫的存取 2019 年 7 月 23 日 Magic Len 研究分享、 Rust Web框架常會搭配資料庫一起使用,Rocket框架當然也有一定程度的資料庫支援。雖然我們可以直接使用Rocket框架提供的應用程式狀態機制來註冊任意套件提供的資料庫實體,但是在程式撰寫上會比較麻煩一點,像是資料庫的位址、帳密等資訊,我們可能就必須要寫死在程式碼內,或是自己再另外開發出可以讓Rocket框架從外部讀取資料庫設定值的功能。Rocket官方提供的「rocket_db_pools」套件,能... 繼續閱讀