NSURLRequestUseProtocolCachePolicy default expiration handling not documented

Number:rdar://11541549 Date Originated:5/26/2012
Status:Open Resolved:No
Product:Documentation Product Version:N/A
Classification:Other bug Reproducible:N/A
NSURLRequestUseProtocolCachePolicy is the default cache policy used by NSURLRequest. The documentation for NSURLRequestUseProtocolCachePolicy states that it follows the process documented in http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2.

Unfortunately, section 13.2.4 of this documentation (http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2.4) does not cover what happens when a server does not provide expiration details as a part of its response to the client. What it says instead is:

"If none of Expires, Cache-Control: max-age, or Cache-Control: s- maxage (see section 14.9.3) appears in the response, and the response does not include other restrictions on caching, the cache MAY compute a freshness lifetime using a heuristic."

The caching behavior in this instance is not documented for NSURLRequest. Empirical evidence from furious users suggests that the data is cached for somewhere between 4 and 24 hours, but not indefinitely.

Steps to Reproduce:

Expected Results:
Documentation would at least describe how long data is cached in an absence of server-defined expiration data and display this information prominently along with the enumeration comments.

Actual Results:
I have not found anything or anyone that can state how long this data is cached.




Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!