Though a server might handle the content's transformation between forms, it's much more flexible to have a server produce the basic content and to have another entity transcode the content into its final form. We refer to such an entity as an intermediary. Intermediaries are computational entities that perform operations on information as it flows between server and client. Intermediaries can perform any number of transformations to information, including personalization, annotation, collaboration, aggregation, caching, and transcoding. For example, a collaboration intermediary might annotate a Web page with dynamic information about who else is currently viewing this Web page and with appropriate tools for chatting with these other viewers.
Intermediaries can reside in various places between browser and server.
They can reside on the client, operating on information for one particular user. They can reside on the server, operating on information from that one server. They can reside at the edge of local networks, performing caching or other useful shared functions for a group of users, and they can also reside at application-service providers where they operate on information for a variety of clients. A single user could install such an intermediary on a client machine for personal use. A group of French-speaking users could install it on a shared machine.