BranchCache is a new content caching feature introduced in Windows 7. This is especially useful in a branch office scenario, when users in the branch office request files from a server located in the head office.
BranchCache is a passive content cache. When BranchCache is enabled, a copy of data accessed from an intranet web site or a file server is cached locally within the branch office. When another user on the same network requests the file, the user gets access to the content almost immediately as it is downloaded from the local cache rather than over a limited bandwidth connection back to headquarters.
BranchCache works with web content (HTTP and HTTPS), and file servers (SMB) and also works well with security technologies like IPSec, SMB Signing and SSL.
BranchCache will only serve content to users who have the right permissions and will always make sure it is delivering the latest version of the file.
Two modes of operation:
Hosted Cache mode: In the Hosted Cache mode, a server in the branch running Windows Server 2008 R2 hosts the cached files.
Distributed Cache mode: In this mode, a branch server is not required, as copies of files are directly cached on Windows 7 PCs located in the branch office. When the same content is requested by another Windows 7 client, the cached content is sent to other Windows 7 clients as needed.
For BranchCache to work, each “content server” (computer serving the content – file server or web server) must run Windows Server 2008 R2. In the case of hosted cache, the hosted cache server must also run Windows Server 2008 R2. All client computers must run Windows 7 Enterprise or Ultimate Edition.
Important information about caching HTTP/HTTPS content (updated: July 1, 2010):
BranchCache feature in Windows Server 2008 R2 Server supports only web-servers that use HTTP.SYS only and IIS uses the HTTP.SYS stack. Hence, even if the web server is running Windows Server 2008 R2 but the web site is not hosted on IIS, BranchCache will not work. Web servers like Apache and Weblogic do not use the HTTP.SYS stack and hence will not work with BranchCache.