這個系列將介紹一些在工作中遇到的奇形怪狀(?)的問題,這些問題更偏向於情境本身,而非程式語言的漏洞。我們將採用問答的方式,讓大家能夠一起思考。那麼,第一集我們就來探討:傳輸中斷。
原本後台有一個下載/觀看影片的功能,這個功能行之有年,幾乎從未出錯。然而,近期卻有許多客戶反映,下載常常在一半的時候就失敗了。
=================思考分隔線=================
深入調查後,發現問題是由於檔案大小過大,導致接收回傳時出現中斷。這種情況在影片或高畫質圖片的檔案傳輸中尤為常見。其原因可能有多種,例如伺服器端的連線時長問題或使用者端的網路連線不穩等,都可能導致這一現象。
解決方法其實很簡單,只需將要傳送的檔案利用 byte-range 的方式進行分段傳輸即可。這部分可以參考 RFC 9110: HTTP Semantics。
另外需要特別注意的是,由於某些瀏覽器或 proxy 會檢查 header 的長度以避免不正常傳輸,因此這部分需要額外進行調整喔!