0Neji
0Neji

Reputation: 1116

How to Use eTag on IIS for text/html Pages

I have a website which sits on a non-public domain and is delivered via a proxy through on a different domain. We're having some trouble with caching of content - this is an Umbraco site and making changes updates the pages if you hit the domain directly, but not through the proxy.

I've been informed that the proxy honours response headers and setting an eTag would fix the issue. Having looked into this I can see that IIS sets the eTag by default, and I can see this is working on static content i.e. .js, .css files like so:

enter image description here

However, if I visit a page on the site, for example /uk/products/product I don't see the eTag header.

Is this expected behaviour, should it only be working with those static content files or can I set this on the page to tell the proxy that it should recache?

Upvotes: 0

Views: 6332

Answers (2)

Mark Weiss
Mark Weiss

Reputation: 1

I've read that IIS after version 7 automatically enables E-tags, however, I ran a Pingdom speed test and the report advised me to enable E-tags. I'm not sure that report is accurate, or the information I read about IIS 7 and newer may not be correct.

Upvotes: 0

Jalpa Panchal
Jalpa Panchal

Reputation: 12769

The ETag HTTP response header is an identifier for a specific version of a resource. It lets caches be more efficient and save bandwidth, as a web server does not need to resend a full response if the content has not changed. Additionally,etags help prevents simultaneous updates of a resource from overwriting each other ("mid-air collisions").

If the resource at a given URL changes, a new Etag value must be generated.

Static content does not change from request to request. The content that gets returned to the Web browser is always the same. Examples of static content include HTML, JPG, or GIF files.

IIS automatically caches static content (such as HTML pages, images, and style sheets), since these types of content do not change from request to request. IIS also detects changes to the files when you make updates, and IIS flushes the cache as needed.

to enable caching in iis you could use iis output caching feature:

1)open iis manager. select site.

2)select the output caching feature from the middle pane.

enter image description here

3)select edit feature setting from the middle pane.

enter image description here

4)check the enable cache and enable kernel cache box and click ok.

enter image description here

if you want to set the ETag as blank you could also do by adding below code in web.config file:

<httpProtocol>
    <customHeaders>
        <add name="ETag" value="" />
    </customHeaders>
</httpProtocol>

refer this below article for more detail:

Caching

To use or not to use ETag, that is the question.

Configure IIS Output Caching

Upvotes: 0

Related Questions