#筆記 URLSession 和 Cache 介紹 — SwiftUI 新手入門 6–2

Dong
May 28, 2023

--

題目及內容取自於: ChaoCode 頻道

筆記:

> URLSession

> URLSessionConfiguration ( header 、 cache )

> URLRequest 和 URLSession 通用設定

> 實際使用範例

URLSession -

(實際範例在最下面)

通常 Class 是存 reference(指向) ,但這邊是 deep copy ,啟動後,並無法更動最初的設定

URLSessionConfiguration -

default、ephemeral、 background 三種預設,並要啟動 session 前設定

▶ 設定 header

在 configuration 中設定 herader,這邊的設定會影響 session 裡面的所有任務

apple 文件說明: 網址

設定 Cache

Cache 介紹:

發出觀看影片請求的流程
順利回傳影片的情況: 有設定 Cache的話,會將影片資料跟相對應的 URLRequest 存進去

假設過幾天後,發出觀看相同影片的請求:

如果是從 cache 中獲取到資料,就可以避免重複下載,也能減少流量跟降低伺服器壓力

但要如何知道資料是不是為最新的,以及下載是否被伺服器允許,其實是透過伺服器回傳時,在它的 header 附上這些相關資訊(Ex: 是否允許cache、驗證 cache 是否過期)

相關資訊會放在 header 中,預設 cache機制會遵從伺服器的規範

怎麼設定 Cache :

儲存位置&使用條件

不建議使用最下面的 2 項
簡單範例

URLRequest 和 URLSession 通用設定 -

兩者皆有的情況

實際應用範例-

用 URLSessionConfiguration 自訂下載行為,並拿來啟動 Session (cachePolicy 也能加進去)
跟上面一樣的圖片(方便查看)

--

--