Implications of Opaque Response Limitations
Opaque responses, as defined in the Fetch API, pose practical challenges and subtle considerations for developers.
Accessing Headers and Body
Opaque responses limit access to meta-information typically available through the Response class. Developers cannot retrieve headers or utilize methods from the Body interface on these responses, restricting the extraction of meaningful data.
Resource Usage
Despite these limitations, opaque responses can be used as resources on a web page. Browsers allow non-CORS cross-origin resources, including opaque responses, to be incorporated into elements such as scripts, stylesheets, and media (e.g., images, videos). However, fonts are an exception to this permissiveness.
Cache Storage
Using opaque responses with the Cache Storage API poses a potential pitfall. The status property of opaque responses is consistently set to 0, regardless of the original request's outcome. The Cache Storage API's add() method rejects responses with a status code outside the 2XX range. This behavior means that opaque responses, regardless of their actual status, cannot be added to the cache using add(), but must be explicitly added using the put() method.
Navigator.storage
Using opaque responses may inflate storage quota estimates and reported values. Browsers implement padding for opaque responses, leading to them contributing a significant minimum size to storage calculations. Developers must consider this padding when caching opaque responses to avoid exceeding storage quota limits based on their actual size.
The above is the detailed content of What are the Practical Challenges and Subtle Considerations of Opaque Response Limitations?. For more information, please follow other related articles on the PHP Chinese website!