Appendix B: Configuring ETag and Max-Age in IIS
Applies To: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista
This appendix describes how to configure the ETag and Max-Age headers.
Configuring the ETag Header
For all versions of IIS, the ETag value for a returned object is based on the last modified file time. In addition to this generated value, the ETag field uses a configured metabase change number when generating the ETag value. To enable clustered nodes to return the same ETag value, the nodes in the cluster must be configured with a metabase change number of 0. In addition:
In IIS 7.0, the metabase change number of 0 is the default setting and cannot be modified.
In IIS 6.0, you must hard code the value 0 as the ETag change number by editing the metabase. For more information about modifying the ETag change number value in the metabase, see article 922703 in the Microsoft Knowledge Base (https://go.microsoft.com/fwlink/?LinkId=164805).
In IIS 5.0, you must hard code the value 0 as the ETag change number by using Mdutil.exe. For more information about modifying the ETag change number value in the metabase, see article 922733 in the Microsoft Knowledge Base (https://go.microsoft.com/fwlink/?LinkId=164806).
Configuring the Max-Age Header
The Max-age header defines the maximum time that a proxy server or client will cache a CRL or OCSP response before using a conditional GET to determine whether the object has changed. The following commands let you set, modify, and delete the Max-Age header setting.
To enable the Max-Age header
Log on to the IIS 7.0 server as a member of the local Administrators group.
Open an Administrative command prompt.
At the command prompt, type cd \windows\system32\inetsrv, and then press ENTER.
At the command prompt, type
appcmd set config /section:httpProtocol /+customHeaders.[name='cacheControlHeader',value='max-age=604800']
Close the command prompt.
To modify the Max-Age header
Log on to the IIS 7.0 server as a member of the local Administrators group.
Open an Administrative command prompt.
At the command prompt, type cd \windows\system32\inetsrv, and then press ENTER.
At the command prompt, type
appcmd set config /section:httpProtocol /customHeaders.[name='cacheControlHeader'].value:max-age=86400
Close the command prompt.
To view the current httpProtocol custom headers
Log on to the IIS 7.0 server as a member of the local Administrators group.
Open an Administrative command prompt.
At the command prompt, type cd \windows\system32\inetsrv, and then press ENTER.
At the command prompt, type
appcmdlist config /section:httpProtocol
Close the command prompt.
Note
For more information about creating and modifying response headers from the command line and in the IIS Manager interface, see Configuring HTTP Response Headers in IIS 7.0 (https://go.microsoft.com/fwlink/?LinkId=155666).