給網站管理者:SaveHere 的請求
SaveHere 是存連結的 iPhone app。有人分享連結時,他 iPhone 上的 app 會讀取那一頁。SaveHere 不是爬蟲;請求都從使用者的 iPhone 發出,不是從 SaveHere 的伺服器。
怎麼認出 SaveHere
User-Agent
SaveHere/<版本>例如 SaveHere/0.1.0。不含裝置或瀏覽器名稱。
- 從哪裡發出
- 使用者的 iPhone。IP 位址是使用者的,不是我們的。
- Accept
- 頁面請求:
text/html,application/xhtml+xml,*/*;q=0.8 - Accept-Language
- 頁面請求:跟著使用者的語言設定。
- robots.txt 與圖片
- 只帶上面的 User-Agent。
robots.txt請求另外帶Accept: text/plain,*/*;q=0.8。其他標頭是 iOS 自己加的。 - Cookie 與登入
- 都沒有。SaveHere 不送 cookie,也不登入。
SaveHere 什麼時候發出請求
- 分享:使用者分享連結的當下,讀取頁面一次。
- 重新讀取:使用者在那筆收藏按「重新讀取」時,讀取頁面一次。
- 確認原貼文:使用者打開有內容的收藏時,送一次
GET確認頁面還在不在。同一筆收藏 24 小時內最多一次。 - robots.txt:每次讀取頁面(包括確認原貼文)之前,先讀
/robots.txt。每支 iPhone 保留最多 24 小時。 - 圖片:頁面上的圖片和網站圖示,各下載一次。分享時讀到的頁面,app 會在使用者下次打開時下載。
SaveHere 不會定期或批次請求頁面。每個頁面請求都來自使用者的動作:分享、按「重新讀取」或打開收藏。
每個請求逾時 15 秒。每頁最多讀 2 MB 的 HTML(YouTube 是 6 MB),每張圖片最多 20 MB。
SaveHere 不做的事
- 不爬整站、不跟著連結走、不批次請求頁面。
- 不登入,不送 cookie。
- 不偽裝成瀏覽器或其他機器人。
- 不破解 CAPTCHA 或驗證頁,不用非官方 API。
- 不下載影片或音訊檔。
怎麼讓 SaveHere 停止讀取
方法一:robots.txt
在 robots.txt 點名 SaveHere:
robots.txt
User-agent: SaveHere
Disallow: /
也可以只擋一部分:
robots.txt
User-agent: SaveHere
Disallow: /members/
Allow: /members/public/
- SaveHere 只看點名它的群組,不分大小寫;寫
SaveHere/1.0也算。 - SaveHere 不套用
User-agent: *的群組。它是因為有人要求才讀一頁,不把自己當成爬蟲。 - 符合的規則中,路徑最長的優先;
Allow和Disallow一樣長時,Allow優先。*和$的用法照 RFC 9309。 - 路徑被禁止時,SaveHere 不送出頁面請求,只存網址。
- 修改後 24 小時內,每支 iPhone 都會套用。讀不到
robots.txt(網路錯誤、5xx、超過 2 秒)時,SaveHere 照常讀取頁面;回應 4xx 視為沒有規則。
方法二:請我們把你的網域加進名單
寄信到 aaron@savehere.app,附上網域,以及讓我們確認網域屬於你的方式。我們會把它加進 app 內建的名單。名單裡的網域(含子網域),SaveHere 完全不發請求、不用 Safari 的頁面內容、不用 LinkPresentation,只存網址。
名單內建在 app 裡,所以要等使用者更新到包含你網域的版本才生效。
robots.txt 不適用的情況
- 從 Safari 分享的頁面:使用者從 Safari 分享時,SaveHere 可以直接用 Safari 已經顯示的頁面,不另外發請求。這種情況
robots.txt不適用,因為使用者已經拿到頁面了;網域名單則適用。 - 圖片與網站圖示:讀到頁面之後,頁面上的圖片和網站圖示同樣用 SaveHere 的 User-Agent 下載,不會再檢查一次
robots.txt。 - 轉址:SaveHere 檢查的是分享連結所在網站的
robots.txt。連結轉址到其他網站時,不會再檢查那個網站的robots.txt。
透過 Apple LinkPresentation 發出的請求
你的網站對 SaveHere 回應 HTTP 403、429 或 503 時,app 可能改請 Apple 的 LinkPresentation(iOS 產生連結預覽的功能)取得標題和一張圖片。Instagram、Threads、Facebook 的貼文讀不到時也一樣。這些請求由 Apple 的系統功能 LinkPresentation 發出,不是 SaveHere 自己的程式,所以不帶 SaveHere 的 User-Agent。對 SaveHere 的 Disallow 或網域名單,也會擋下這些請求。
聯絡我們
問題、回報或停止讀取的要求:aaron@savehere.app
