14.1. The HTTP Server
When a request comes in to one of the network interfaces where Virtuoso is listening for HTTP requests, it is matched against a set of virtual directory path mappings. A path mapping has the following attributes:
Interface - interface coming from HTTP request |
Virtual Host - matched virtual host name |
Logical Path - logical path |
Mapped Path - physical location of the resource |
Is in DAV - If the resource is placed in WebDAV domain |
Default page - the name of the page to be returned if none is supplied |
Browseable - allows for returning the list of files in a directory if no specific file is requested |
Security - security restrictions to the resource |
Authentication Function - Virtuoso/PL procedure name, which performs authentication |
Realm - an string applied to Authentication function |
Request Post-processing Function - Virtuoso/PL procedure name, which performs post-processing action, before sending the response |
Database User Account - User account name, on behalf of which active content will be executed |
Figure 14.1. HTTP Server Conceptual Diagram
![HTTP Server Conceptual Diagram](images/httpconcept.jpg)
Incoming requests are also checked against the HTTP access control lists. These lists rely on the following attributes of the connection to determine whether the request should be answered:
Client Host or IP Address - the incoming requestor is pattern matched to specify a range. |
Destination Host or IP Address - Destination IP/Host match, also applicable to the proxy capabilities. |
The Virtuoso HTTP server is HTTP/1.1 compliant. It can accept persistent connections from HTTP/1.1 clients. The HTTP/1.0 requests are processed as normal without the persistent connections feature.
Persistent HTTP connections offer several advantages, such as:
Reduced CPU usages by opening and closing fewer connections. |
HTTP requests and responses can be pipelined on a connection. Pipelining allows a client to make multiple requests without waiting for each response, allowing a single TCP connection to be used much more efficiently with lower elapsed time. |
Network traffic is reduced. |
Latency on subsequent requests is reduced. |
![]() |
See Also: |
---|---|
RFC2616 for more details |