Question

After you use a CDN domain, the corresponding CDN node caches content from your origin server. Therefore, end users can retrieve the content from the CDN node more efficiently than from the origin server. If an end user requests content from the origin that has 302 redirects configured, the CDN node caches the Web page that the URL in the request points to. When other types of terminals request content with the same URL next time, these terminals retrieve the Web page cached on the CDN node. However, this Web page is not the target Web page after a 302 redirect. As a result, the origin server cannot respond to different terminals with adaptive content. How does CDN process 302 redirects from an origin server?

Answer

The style of a Web page displayed on a terminal depends on the terminal type. If the origin server responds to a request based on a 302 redirect, the target Web page after the 302 redirect is returned.

You can specify that the CDN node does not cache the Web page that the URL in a request points to, but caches the target Web page after a 302 redirect. Accordingly, different types of terminals can retrieve adaptive content from the origin server after 302 redirects through the CDN node. The same type of terminals can retrieve the content cached on the CDN node. Therefore, the content delivery is accelerated for all types of terminals. The CDN node can cache content based on directories and file extensions. You can configure the type of cached objects and the priorities of caching rules in the CDN console. Based on the directory structure of your website, you can specify that the CDN node will not cache the content that a requested URL points to. Instead, the CDN node caches the target content after a 302 redirect. For the same purpose, you can configure a policy on the origin server. This policy specifies that the content a requested URL points to will not be cached. This policy on the origin server has higher priority than the caching policies of CDN. Specifically, you can include the following header settings in the response for a requested URL:
  • Cache-Control: no-cache, no-store, private
  • Cache-Control: s-maxage=0, max-age=0
  • pragma: no-cache