[英]Fetching expiry of the session from URL
我正在嘗試從URL
獲取信息,即知道會話時間何時從URL到期? 例如,如果您嘗試連接到URL
並從Mediafire用IDM下載文件,則可以暫停它。 自您首次與Mediafire的URL
建立連接4個小時后,您正嘗試重新連接並恢復下載。 不幸的是,您收到一條消息:
403:禁止 您無權訪問此服務器上的file.zip。
或此消息:
可能此站點使用的臨時鏈接不能被請求兩次,也不能在會話完成后的一段時間后過期。
這意味着Mediafire給了我們最大的重新連接時間。 因此,您必須在該時間間隔內恢復下載。
我努力了:
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.connect();
String exp = urlConnection.getHeaderField("Expires");
System.out.println("Expire date: " + exp);
輸出:
Expire date: null // while responseCode is 200 OK
有時,使用不同的URL
,我會收到Tue, 03 Nov 2015 03:41:09 PST
。
那么,我怎么知道會話時間肯定已過期?
預先感謝。
根據RFC,並不總是有過期標頭字段。
沒有時鍾的原始服務器不得生成Expires字段,除非其值表示過去的固定時間(總是過期)或者其值已由具有可靠時鍾的系統或用戶與資源相關聯。
如果源服務器希望強制緩存驗證每個請求,則它可以分配過去的顯式到期時間以指示響應已過時。 兼容的緩存通常會先驗證過時的緩存響應,然后再將其用於后續請求(請參閱第4.2.4節)。
由於原始服務器並不總是提供明確的到期時間,因此在某些情況下,還允許緩存使用啟發式方法來確定到期時間(請參閱第4.2.2節)。
由於原始服務器並不總是提供明確的到期時間,因此在未指定明確時間的情況下,緩存可以分配啟發式到期時間,采用使用其他報頭字段值(例如Last-Modified time)的算法來估計可能的到期時間。 。 該規范未提供特定的算法,但對結果施加了最壞情況的約束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.