Roaming and Managing IE Cookies and History – Better Together
Over the last few years, the challenge around roaming user cookies and history has had some considerable attention. Researching the issue quickly shows there are many people trying to solve it: some have (with side effects), others are still looking for a solution and others, I’m afraid to say, have just given up and given their users a less than ideal user experience. Those of you reading this will more than likely be familiar with AppSense (now Ivanti) Personalization and the ability to store user data for roaming between sessions and devices. With some of the changes beginning with Windows 8 it has become more challenging to personalize web data. Until Windows 7, all user Personalization data was stored in two places: the file system and registry. Windows 8 introduced storage of settings in mini databases, and this is becoming more prevalent with things such as the Windows 10 start menu.
A core change to the WinInet API within Windows also brings in another database, the webcache.dat file, or just “webcache”. If we take a step back and look at Internet Explorer 9 and earlier we see that cookies are small files in a folder with associated index.dat files, and browser history is again just a bunch of shortcuts in a folder. These were relatively easy to roam – they could be captured by Personalization, or (especially in RDSH/XenApp environments) redirected to a file server using Environment Manager Folder Redirection:
These files could also be copied in and out at logon/logoff time using a File Copy action.
Internet Explorer 10 and later (IE10+) makes use of the new WinInet and the aforementioned webcache database. To successfully capture browser personalization for users it is necessary to capture all three elements – files, registry and the webcache database (which is also a file, but read on).
We see here a screenshot of the webcache folder from my Windows 10 machine. The webcacheV01.dat and the associated files take around 110MB of space in the %LocalAppData% folder;
Looking at the webcache a bit more closely, it can broadly be defined as containing the following data:
The webcache starts life at 32MB and grows as users use the system. In our customer experience we find that the database can be well over 100MB and will continue growing.
Environment Manager gives us a solution to roaming the browser data via the built-in Windows Personalization Groups called:
- IE10+ Cookies and History (W7, WS2K8 R2)
- IE10+ Cookies and History (W8.x, WS2012, WS2012R2)
- IE11 Cookies and History (W10, WS2016)
Selecting the correct one for your operating system lets Environment Manager store the Cookie and History data along with the webcache folder allowing it to roam between sessions:
However, with the webcache file growing to 100MB and more this can cause a new issue. Simply transferring this amount of data at logon and logoff, together with the hundreds/thousands of cookie files has a dramatic effect on user logon times. Also, even when compressed (thanks to AppSense Personalization Server default behaviour) the webcache is still relatively large and the amount of SQL storage required will increase dramatically.
This is where Avanite WebCache Manager comes in. It can be used together with AppSense Personalization Server and is the only software available today which can successfully manage the webcache and its contents. The administrator can define what web data is to be kept and what is to be deleted. Avanite WebCache Manager will handle deleting files on disk, registry entries, and importantly the relevant entries within the webcache. Once it has tidied up the webcache it performs an optimization of the file ensuring it is kept at minimum size.
To see WebCache Manager in action together with Environment Manager take a look at this video - https://www.youtube.com/watch?v=ORiUzmtR-ds&t=22s.
As stated above, the webcache database comes into play with any applications which use WinInet. In particular, Windows Universal Web Platform (aka UWP aka Windows Store) apps store data within the webcache – the Edge browser is a UWP app, for example. Using Enterprise Mode lists in IE11 or Edge, and compatibility lists for IE10+, even simply browsing a local network writes data to the webcache database. WebCache Manager is able to deal with all of these ensuring that the file sizes are kept to minimum while still maintaining the required user data. The overall result is to give the user the best user experience whilst still maintaining a smaller storage footprint and lower network utilization.
In the video, we see how 3 weeks of browsing consumes around 17MB (when compressed) in our database for one user:
This data is made up of our webcache file which is 12MB in size after compression (around 95MB before compression), around 3,400 cookie files and some other files and registry data which make up our IE personalization data.
After running WebCache Manager during logoff for our user, Environment Manager now has just over 2MB of space being consumed in our database. The webcache file is now around 0.5MB in size after compression (24MB before compression) and we have just 1,000 cookie files (over 2,000 less). WebCache Manager has removed unwanted data from the webcache and optimized the file as well as removing orphaned, redundant, expired and unwanted cookies:
The result is that the user logon time reduces from over 1 minute to around 15 seconds.
Avanite WebCache Manager understands the data and the relationship between the different elements of the browser data, it can granularly manage what is retained in the webcache file and can manage the associated registry and file system data ensuring only what is needed is retained.
If you want to learn more, feel free to visit us at https://www.avanite.com/software.