A method of serving a resource to an HTTP client via a computer network (109, 206), the method comprising: at an HTTP server system (102, 202) having a stateless microkernel architecture, the server system (102, 202) including one or more link resource servers, receiving an HTTP request for a resource from an HTTP client via a computer network (109, 206), the request being to perform a resource operation, the resource operation being to retrieve the resource and send the resource to the requesting HTTP client, wherein the resource is a data object; determining if the resource operation is authorized based on the request by determining a user identifier based on the request and querying an authorization solver to determine whether a user corresponding to the user identifier is authorized to perform the resource operation; and if the resource operation is authorized: sending the resource operation to an object server associated with the resource identified by the request, in response, receiving a data object from the object server, providing, via a linking engine, the data object to each link resource server of the one or more link resource servers, wherein each link resource server includes linking rules for one or more object types, in response, receiving zero or more links from each of the one or more link resource servers, wherein each link includes a content type identifier indicating content type of the data object, wherein each link resource server is configured to examine the content type of the data object, and to return one or more links according to the linking rules corresponding to the content type of the data object, embedding the links in the data object so as to embed in the data object the content type identifier and a resource location identifier indicating a location of the resource, and sending the data object to the requesting HTTP client via the computer network (109, 206). receiving an HTTP request for a resource from an HTTP client via a computer network (109, 206), the request being to perform a resource operation, the resource operation being to retrieve the resource and send the resource to the requesting HTTP client, wherein the resource is a data object; determining if the resource operation is authorized based on the request by determining a user identifier based on the request and querying an authorization solver to determine whether a user corresponding to the user identifier is authorized to perform the resource operation; and if the resource operation is authorized: sending the resource operation to an object server associated with the resource identified by the request, in response, receiving a data object from the object server, providing, via a linking engine, the data object to each link resource server of the one or more link resource servers, wherein each link resource server includes linking rules for one or more object types, in response, receiving zero or more links from each of the one or more link resource servers, wherein each link includes a content type identifier indicating content type of the data object, wherein each link resource server is configured to examine the content type of the data object, and to return one or more links according to the linking rules corresponding to the content type of the data object, embedding the links in the data object so as to embed in the data object the content type identifier and a resource location identifier indicating a location of the resource, and sending the data object to the requesting HTTP client via the computer network (109, 206). sending the resource operation to an object server associated with the resource identified by the request, in response, receiving a data object from the object server, providing, via a linking engine, the data object to each link resource server of the one or more link resource servers, wherein each link resource server includes linking rules for one or more object types, in response, receiving zero or more links from each of the one or more link resource servers, wherein each link includes a content type identifier indicating content type of the data object, wherein each link resource server is configured to examine the content type of the data object, and to return one or more links according to the linking rules corresponding to the content type of the data object, embedding the links in the data object so as to embed in the data object the content type identifier and a resource location identifier indicating a location of the resource, and sending the data object to the requesting HTTP client via the computer network (109, 206).