I was reading an article about Web Application configurations and I came across the concept of a Web Accelerator, but reading the list of features it seems it provides pretty much of the features that I would ask from a CDN or even some Web Server configurations.
A web accelerator is a proxy server that reduces web site access times.
It provides:
- cache recently or frequently accessed documents so they may be sent to the client with less latency or at a faster transfer rate than the remote server could.
- freshen objects in the cache ensuring that frequently accessed content is readily available for display.
- preemptively resolve hostnames present in a document (HTML or JavaScript) in order to reduce latency. prefetch documents that are likely to be accessed in the near future. compress documents to a smaller size, for example by reducing the quality of images or by sending only what's changed since the document was last requested.
- optimize the code from certain documents (such as HTML or JavaScript).
- filter out ads and other undesirable objects so they are not sent to the client at all.
- maintain persistent TCP connections between the client and the proxy server.
- improve the performance via protocol level accelerations, such as TCP acceleration.
Now if you ask me I look at the following components and also give them the above responsabilities:
CDN: (1)(2)
Load Balancer: (5)(7)
Reverse Proxy: (1)(2)(4)(6)(7)
Although I might have not fully correctly categorized the above assignment of responsabilities, it seems like a web accelerator could be a CDN, a LB or even a Reverse Proxy.
Could someone point me the uniqueness of such component and the best use cases? And how does an web accelerator fit in a model with a CDN, LB and/or Reverse Proxy?