SUMMARYThe main responsibilities of a web server are to listen from the communication channel and to prepare replies to requests. Additional responsibilities include adapting processing activities, for example, through scheduling or request filtering, so as to satisfy Quality of Service (QoS) requirements. Typical QoS-related concerns address behavioural constraints (e.g. response time bounds, satisfiable by scheduling the most urgent requests first) and resource monitoring, for optimal use. Although such concerns are spread across several web server components, they should be handled separately from communication-related ones, for the sake of modularity.For this purpose, we advocate recourse to aspect-oriented programming and illustrate it by showing how a QoS-related layer can be smoothly superimposed on top of a well-known, unmodified, web server Jigsaw. As part of the provided support, requests are assessed and partitioned into those that can be appropriately handled by using local resources and those needing further resources. For the latter requests, cloud-based resources are gathered. Aspect-orientation enables new QoS-related code to be separated from web server modules so as to keep existing code unaltered, while runtime behaviour is modified with the measures needed to handle QoS concerns.