The NCA feature includes the following components.
Kernel module, ncakmod
Web server, httpd
The kernel module ncakmod maintains the cache of web pages in system memory. The module communicates with a web server, httpd, through a sockets interface. The family type is PF_NCA.
The kernel module also provides a logging facility that logs all HTTP cache hits. NCA logging writes HTTP data to the disk in binary format. NCA provides a conversion utility for converting binary log files to common log format (CLF).
The following figure shows the flow of data for the conventional path and the path that is used when NCA is enabled.
The following list shows the request flow between the client and the web server.
An HTTP request is made from the client to the web server.
If the page is in cache, the in-kernel cache web page is returned.
If the page is not in cache, the request goes to the web server to retrieve or update the page.
Depending on the HTTP protocol semantics that are used in the response, the page is cached or not. Then the page is returned to the client. If the Pragma: No-cache header is included in the HTTP request, the page is not cached.