Microsoft Home Microsoft Home

Appendixes


The FrontPage Remote Procedure Call Protocol

The FrontPage client and the FrontPage Server Extensions communicate with each other using a Remote Procedure Call (RPC) protocol that is layered on top of HTTP and HTML. When the FrontPage client needs the server extensions to do something, it sends a POST request to the server.

This POST request is addressed to one of three DLLs within the web that is being authored

  • Requests for browse-time actions go to Shtml.dll or Shtml.exe
  • Requests for authoring-time actions go to Author.dll
  • Requests for administrative actions go to Admin.dll

 

The body of the POST request contains the command in the form "method=command", where "command" is a string indicating the operation that the FrontPage client wants the server to execute.

The Server Extensions respond to the request by executing the command and returning a "200 OK" response. The message body of the response contains information returned by the command, in nested name-value pairs.

The message body takes this general form:

   <html>
   <head></head>
   <body>
   <p>item1=value
   <p>item2=value
   <p>item3=<ul>
        <li>item3.1=value
        <li>item3.2=value
        <ul>
            <li>item3.3.1=value
            <li>item3.3.2=value
        </ul>
   </body>
   </html>

To illustrate how the RPC protocol works, here is a look at part of a FrontPage client/Server Extensions conversation. In this sample, the FrontPage client establishes a connection with a server running the Server Extensions and determines which version of the Server Extensions are running.

 

This transcript has been edited for clarity and unimportant parts
have been suppressed.
    GET /_vti_inf.html HTTP/1.0
    Date: Fri, 17 Apr 1998 02:05:31 GMT
    User-Agent: Mozilla/2.0 (compatible; MS FrontPage 3.0)
    Host: fp4

The server responds by returning the file. The client reads the response and finds the value associated with "FPShtmlScriptUrl", which tells it where to POST requests for browse-time commands to be executed. Now that it knows where to POST to, it asks the server what version of the server extensions it is running:

    POST /_vti_bin/shtml.dll/_vti_rpc HTTP/1.0
    User-Agent: MSFrontPage/4.0
    Content-Type: application/x-www-form-urlencoded
    method=server version

The Server Extensions process the "method=server version" request and return their version information:

    HTTP/1.0 200 OK
    Server: Microsoft-IIS/3.0
    Date: Fri, 17 Apr 1998 02:04:43 GMT
    Content-type: application/x-vermeer-rpc
    
    <html><head><title>RPC packet</title></head>
    <body>
        <p>method=server version
        <p>server version=
              <ul>
            <li>major ver=3
            <li>minor ver=0
            <li>phase ver=2
            <li>ver incr=926
           </ul>
    </body>
    </html>

  BACK  TOP  
 
 
  Last Updated June 1999
1999 Microsoft Corporation. All rights reserved. Terms of Use. Disclaimer