0

Our company have a website made in Classic ASP, which most of them are static pages. We have enabled Kernal cache for 30 seconds in our web.config file in order to speed-up the displaying of all our webpages :

<caching enabled="true" enableKernelCache="true" maxCacheSize="512" maxResponseSize="524288">
    <profiles>
        <add extension="*" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" varyByQueryString="*" varyByHeaders="accept-encoding, accept-language" location="Server" duration="00:00:30"/>
    </profiles>
</caching>

We have one dynamic page displaying customer information : This page display information based on the Request.Querystring("userId") parameter :

EXAMPLE. https://website.com/user.asp?userId=12345

Our question is the following : Do you confirm me the fact that this dynamic page will never be cached for other users, as it always have a different URL (based on the userId parameter) ?

We need to be sure that userId=12345 will NEVER see cached information for userID=56789, even if they access the "user.asp" page in the same cache timeframe (30 seconds) ?

Thank you very much,

1 Answer 1

0

The Kernel Cache in IIS needs several conditions to be met by the requested resource in order to be cached. One of those conditions is that it should not contain any query string. You can check it in Microsoft's Knowledge Base here:

https://support.microsoft.com/en-us/help/817445/instances-in-which-http-sys-does-not-cache-content

if one or more of the following conditions are true, HTTP.sys does not cache the request response:

....

  • The request contains a query string.

It makes total sense, and that's exactly the use case that you need.

HTH

1
  • BTW, you can check the caching status of any request, even in kernel mode, by using IIS FREB (Failed Request Event Buffering). If you check the report for your request you can find the different stages of caching and can check if it's being used or not.
    – jalarcon
    Jan 26, 2018 at 8:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.