text: The following diagram represents some of the complex mix of components that are included with 
  
  frameworks. Routers send URLs to classes or functions to handle requests and return responses. 
  
  Utility classes retrieve form data, query strings, headers, and cookies. A bundled abstraction layer 
  
  stores and retrieves data in SQL or NoSQL databases. Additional components manage connections 
  
  to external services through synchronous API calls or asynchronous message queues. Extension 
  
  points exist to bolt-on even more components, such as asynchronous hooks, or single sign-on 
  
  authentication. 