CRM published through ISA/TMG : Save and new button on the form does not work properly, need to click twice on the links in the CRM page

I recently  worked on a case where CRM was published through TMG server. Users on the internet after logging to CRM website when they try to click a link he needs to click twice to open that link , apart from that in the user edit form there is a save and new button on which if user click to save and new, this form greys out.

Troubleshooting
After checking the basic settings and publishing rule to be correct on TMG we collected data using TMG data packager on TMG and network monitor traces on CRM server and network traces and fiddler on the client machine.

Data analysis

In network traces on the CRM server found following in the response coming from the CRM server. There is a Http header : Vary which has value "*"

 

now if we look at the Network traces on the CRMclient, we see following for the same header i.e. Vary header appears twice one with value "*" and then "Accept-Encoding."

 

There are instance when CRM server sends Vary header with value "Accept-Encoding" and on CRM client machine we See Vary haeder with value "*".

 

As perf RFC https://www.ietf.org/rfc/rfc2616.txt ,A Vary field value of "*" signals that unspecified parameters not limited to the request-headers (e.g., the network address of the client), play a role in the selection of the response representation. The "*"
value MUST NOT be generated by a proxy server; it may only be generated by an origin server.

Hence we see this wierd behavior on the browser, where user has to double click on the links and save and new button does not work as expected.

Resolution

 We enabled the compression between ISA/TMG and the CRM Server as shown below i.e. in general Global http policy settings

 

 

Define the HTTP Compression preferences, and select the “Request compressed data” Tab  and add computer object for the CRM server. Save and apply the settings.

 

 Same settings can be configured on TMG at following location.

 

After we configured these settings issue got resolved, after this we had  only one value for http-Vary header in the response on the CRM client.