Introduction
When a web page is displayed in a browser, content is generated on the web server-side and sent to the PC browser as an HTTP response.
In order to increase the display speed of web pages, it is necessary to accelerate the web server-side and the PC browser. The key to PC browser acceleration is content optimization. By reducing the amount of data sent from the web server to the PC browser, the time required for data transfer can be reduced and the time to display can be shortened.
WEXAL® Page Speed Technology (hereinafter referred to as "PST") increases the display speed of web pages by the following.
Optimization Strategy Generation and Content Optimization
Content is the web page (HTML) of the HTTP response.
PST generates optimization strategies by Strategic AI "David" according to the browser environment. The PST plug-in on the web server rewrites the HTTP response content after web server rendering.
Resource Monitoring and Optimization
Resources are images, scripts, and style sheets loaded according to content.
PST watches the original resource for updates and generates optimized resources as needed. By rendering these optimized resources to the local PC browser, the display speed is increased.
Components
PST consists of the following components.
WEXAL Services
WEXAL Services provides functions such as optimization strategy generation, resource monitoring and optimization. These services are registered in "systemd" as "wexal.service".
Optimization Strategy Service (“strategy”)
This service generates optimization strategies for each web page according to the browser environment. This service reproduces the web page display in the "puppeteer" (headless browser) and generates optimization strategies. Each request is processed on demand and sequentially. Requests are managed in a queue.
Resource Monitoring Service (“watch”)
This service monitors for updates to the original resources. When images, scripts, or style sheets are updated, this service directs the Resource Optimization Service (“optimizer”) to generate optimized resources. When the original resource is removed, the corresponding optimized resource will also be removed. Resource monitoring is performed on a per-profile basis.
Resource Optimization Service (“optimizer”)
This service generates optimized resources from original resources. By receiving directives from the Resource Monitoring Service (“watch”), PST command, or API Service (“api”), this service optimizes images, scripts, and style sheets. Although the system processes each request sequentially, it can process as many requests as the number of system cores at the same time. Directives are managed in a queue.
API Service (“api”)
This service provides API for PST, and is requested from WEXAL services, PST command, and PST Manager. It uses localhost (127.0.0.1) and port 3000 by default.
PST Plug-in
This Plug-in runs on the web server "nginx"/"httpd" and provides directions to the Optimization Strategy Service (“strategy”) according to the environment of the browser. It also processes and rewrites the HTTP response generated by the web server according to the optimization strategy.
PST Commands
This is a Command Line Interface (CLI) for controlling PST functions. The command is “/usr/bin/pst”.
PST Manager
This is a web administration page for controlling PST functions. By default, it uses the system's global IP address, port 61000.
PST Configuration File
This is the configuration file for PST Configuration. The format is YAML. It is generated in "wexal/pst.config.yaml" for each profile.
Optimized Resources
These are optimized images, scripts, and style sheets generated by the Resource Optimization Service (“strategy”). These resources are generated under "wexal/optdir" directories for each profile.
Optimization Strategy Database
This database stores optimization strategies generated for each browser and request by the Optimization Strategy Service (“strategy”). In the process of generating optimization strategies, the resources obtained by the "puppeteer" (headless browser) to reproduce the display of the web page in the browser are also stored. It is generated in "wexal/{profile name}.sqlite3" for each profile.
Queue
The queue manages directions for the Optimization Strategy Service (“strategy”) and Resource Optimization Service (“optimizer”). Redis (remote dictionary server) is used.
Web Server
PST Plug-ins run on the web server. The server renders suitable resources according to the optimization strategy. For example, WebP resources are output to browsers that support WebP, and PNG/JPEG resources are output to browsers that do not support WebP.