Microsoft Home Microsoft Home
 Microsoft FrontPage 2000 Server Extensions Resource Kit

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 November 1998
©1998 Microsoft Corporation. All rights reserved. Terms of Use.