Behind the scenes: Opening a Document from a SharePoint 2010 Document Library

Posted by

This is a summary to provide a glimpse of the Client to Server interaction when a user attempts to open a word document from a SharePoint 2010 Document Library.   A lot of decision making goes behind each attempt when factoring in client Operating System level and Office version.  In this blog, we will cover what things look like with the following setup:

  • Client:  Windows 7 using Office 2010  “Word 2010”
  • Server: SharePoint 2010
  • Site Name:  http://wfe:9999
  • Document LIbrary Name:  Shared Documents
  • Filename: Test8.docx

 

I captured a network trace using Network Monitor and will output the frame details to describe the interaction.  I recommend this as a first step if your attempting to troubleshoot problems when opening Word documents. 

 

1.    User first Authenticates into the Site via HTTP/HTTPS and attempts to open a document from a document library


2.    Once Authenticated, the protocol client issues an HTTP OPTIONS request to the server again to determine the capabilities of the server.

A network trace of the client request looks like:

      Frame: Number = 155, Captured Frame Length = 841, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14378, Total IP Length = 827
+ Tcp: Flags=…AP…, SrcPort=46989, DstPort=9999, PayloadLen=787, Seq=892234633 – 892235420, Ack=3231455964, Win=32850 (scale factor 0x2) = 131400
– Http: Request, OPTIONS /Shared%20Documents/ , Using NTLM Authorization
    Command: OPTIONS
  + URI: /Shared%20Documents/
    ProtocolVersion: HTTP/1.1
    UserAgent:  Microsoft Office Protocol Discovery
    Host:  wfe:9999
  + Authorization: NTLM
    Connection:  Keep-Alive
    ContentLength:  0
    HeaderEnd: CRLF

 

3.    The server responds to the HTTP Options request and provides a list of supported methods and also provides values in the X-MSFSSHTTP header and the MS-Author-Via header

A network trace of a client response looks like:

  Frame: Number = 156, Captured Frame Length = 915, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27779, Total IP Length = 901
+ Tcp: Flags=…AP…, SrcPort=9999, DstPort=46989, PayloadLen=861, Seq=3231455964 – 3231456825, Ack=892235420, Win=513 (scale factor 0x8) = 131328
– Http: Response, HTTP/1.1, Status: Ok, URL: /Shared%20Documents/
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Cache-Control:  private,max-age=0
    Allow:  GET, POST, OPTIONS, HEAD, MKCOL, PUT, PROPFIND, PROPPATCH, DELETE, MOVE, COPY, GETLIB, LOCK, UNLOCK
    ContentLength:  0
    Expires:  Mon, 30 Jan 2012 15:36:07 GMT
    Accept-Ranges:  none
    Server:  Microsoft-IIS/7.5
    SPRequestGuid:  fb203b34-4b4b-4b65-8cf0-33dd90aa309d
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    X-SharePointHealthScore:  4
  – WDVSEHeaderMsAuthorVia: MS-FP/4.0 -Microsoft FrontPage Server protocol version 4.0 enabled on the Web server.
     MsAuthorVia:  MS-FP/4.0,DAV
    X-MSDAVEXT:  1
    DocumentManagementServer:  Properties Schema;Source Control;Version History;
   X-MSFSSHTTP:  1.0
    DAV:  1,2
    Public-Extension: 
http://schemas.microsoft.com/repl-2
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    Persistent-Auth:  true
    XPoweredBy:  ASP.NET
    MicrosoftSharePointTeamServices:  14.0.0.6112
    Date:  Tue, 14 Feb 2012 15:36:07 GMT
    HeaderEnd: CRLF

 

Another important piece to the above frame is the X-MSFSSHTTP header.    Above you can see it equals 1.0 which means that the client will use File Synchronization via SOAP over HTTP protocol.   This starts on # 12 below.   It then looks at the MSAuthorVia to determine  if the server supports the FrontPage Server Extensions.  Since it does, FrontPage Server Extensions are used in this case.  

If the X-MSFSSHTTP header is missing or less than 1.0, it just reverts to the MsAuthorVia to communicate over Webdav or Front Page Server Extensions.   
In the above example it supports both Front Page Server Extensions and WebDav.   Since both are provided, the determination of which protocol to use is based on the version of the Operating System and the Protocol Client that are in use.

What is used “WebDav or FPSE (Front Page Server Extensions).

  • Windows 7/Windows Vista with Office 2010/Office 2007 – WebDav is used.
  • Windows XP with Excel 2010\Excel 2007\PowerPoint 2010\PowerPoint 2007\Word 2010\Word 2007 – WebDav is used
  • Windows XP with any other Office 2010 or Office 2007 Application not listed above –  FrontPage Server Extensions are used
  • Any Operating System with Office 2003 client –  Front Page Server Extensions are used

 

Note:  Again, this decision making is made when the X-MSFSSHTTP is missing or equates to less than 1.0.   In my case, it equals 1.0 so it will always use File Synchronization via SOAP over HTTP protocol and FPSE (Front Page Server Extensions since I report it as supported.

 

Question:  What are Front Page Server Extensions?

Answer:  From:  http://msdn.microsoft.com/en-us/library/ms442469.aspx

“Microsoft SharePoint Foundation and FrontPage Server Extensions 2002 from Microsoft are a set of programs that work in conjunction with Microsoft Internet Information Server (IIS) to support administering, authoring, and browsing a Web site. SharePoint Foundation and the FrontPage Server Extensions Remote Procedure Call (RPC) protocol govern the exchange of information between the client computer and the Web server running SharePoint Foundation. This communications protocol is layered on top of the same HTTP protocol that Web browsers use to interact with a Web server.  The RPC protocol uses the HTTP POST request to send methods to SharePoint Foundation and the FrontPage Server Extensions. These requests enable the client to request documents, update Tasks lists, add new authors, and so on. The return values contain any requested information to the client in the form of an HTML document. When a client author opens a site from a Web server running SharePoint Foundation or FrontPage Server Extensions, information about the site, such as its hyperlink map, is downloaded to the client computer so that the client can display the information. However, the full set of pages and other files that comprise the site remain on the Web server.”
 

A list of FPRPC methods are available here:   http://msdn.microsoft.com/en-us/library/ms443099.aspx
   

   
4.    FPSE Request:  The first FPSE frame the client sends is to request the Server version via HTTP Post against /_vti_bin/shtml.dll/_vti_rpc with the method name:   server_version as documented here:

http://msdn.microsoft.com/en-us/library/ms460198.aspx

  Frame: Number = 174, Captured Frame Length = 519, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14380, Total IP Length = 505
+ Tcp: Flags=…AP…, SrcPort=46989, DstPort=9999, PayloadLen=465, Seq=892235759 – 892236224, Ack=3231457633, Win=32850 (scale factor 0x2) = 131400
– Http: Request, POST /_vti_bin/shtml.dll/_vti_rpc
    Command: POST
  – URI: /_vti_bin/shtml.dll/_vti_rpc
     Location: /_vti_bin/shtml.dll/_vti_rpc
    ProtocolVersion: HTTP/1.1
    Date:  Tue, 14 Feb 2012 15:36:07 GMT
    MIME-Version:  1.0
    UserAgent:  MSFrontPage/14.0
    Host:  wfe:9999
    Accept:  auth/sicily
    ContentLength:  42
  – ContentType:  application/x-www-form-urlencoded
     MediaType:  application/x-www-form-urlencoded
    X-Vermeer-Content-Type:  application/x-www-form-urlencoded
    Connection:  Keep-Alive
    Cache-Control:  no-cache
  + Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}
    HeaderEnd: CRLF
    payload: HttpContentType =  application/x-www-form-urlencoded
– FrontPage: (Request) server_version:14.0.0.6009;
  – FrontPageUrl: server_version:14.0.0.6009;
   – FPMethod: server_version:14.0.0.6009
      Method: server_version – Request the version of the server extensions in use on the Web server
    + ServerVersion: 14.0.0.6009
    End:

 

5.    FPSE Response:  The server responds with the server version information:

  Frame: Number = 175, Captured Frame Length = 516, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27781, Total IP Length = 502
+ Tcp: Flags=…AP..F, SrcPort=9999, DstPort=46989, PayloadLen=462, Seq=3231457633 – 3231458096, Ack=892236224, Win=510 (scale factor 0x8) = 130560
– Http: Response, HTTP/1.1, Status: Ok, URL: /_vti_bin/shtml.dll/_vti_rpc
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Server:  Microsoft-IIS/7.5
    Date:  Tue, 14 Feb 2012 15:36:07 GMT
    Connection:  close
  + ContentType:  application/x-vermeer-rpc
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    HeaderEnd: CRLF
    payload: HttpContentType =  application/x-vermeer-rpc
– FrontPage: (Response) server_version:14.0.0.6009;
  – FrontPageHtml: 0x1
     FPSHtmlBegin: <html>
   + FPSHtmlHead: HtmlTitle = vermeer RPC packet
   – FPSHtmlBody: server_version:14.0.0.6009;
      FPSHtmlBodyBegin:
<body>
    – FPSHtmlBodyData: server_version:14.0.0.6009;
     + HtmlSign:
<p>
     + FPMethodHtml: server_version:14.0.0.6009
     + HtmlSign:
<p>
     + server version:
     + HtmlSign:
<p>
     + source control: 1
      FPSHtmlBodyEnd:
</body>
     FPSHtmlEnd:
</html>
    End:

 

6.    FPSE Request:  The client then fetches the URL of the file by submitting the FPRPC url_to_web method documented here: 

http://msdn.microsoft.com/en-us/library/ms460544.aspx

  Frame: Number = 187, Captured Frame Length = 143, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14388, Total IP Length = 129
+ Tcp: Flags=…AP…, SrcPort=46990, DstPort=9999, PayloadLen=89, Seq=1159122353 – 1159122442, Ack=2274629607, Win=32649 (scale factor 0x2) = 130596
– Http: HTTP Payload, URL: /_vti_bin/shtml.dll/_vti_rpc
    payload: HttpContentType =  application/x-www-form-urlencoded
– FrontPage: (Request) url_to_web_url:14.0.0.6009;Url = /Shared+Documents/Test8.docx;
  – FrontPageUrl: url_to_web_url:14.0.0.6009;Url = /Shared+Documents/Test8.docx;
   – FPMethod: url_to_web_url:14.0.0.6009
      Method: url_to_web_url – Return the URL of the Web site to which a designated file belongs, including its subordinate Web if applicable
    + ServerVersion: 14.0.0.6009
   + Url: /Shared+Documents/Test8.docx
   + Flags: 0 – This parameter is ignored by the server but can be sent by the client and should equal 0
    End:

 

7.    FPSE Response:  The server responds with the URL location of the file:

  Frame: Number = 189, Captured Frame Length = 450, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27789, Total IP Length = 436
+ Tcp: Flags=…AP..F, SrcPort=9999, DstPort=46990, PayloadLen=396, Seq=2274629607 – 2274630004, Ack=1159122442, Win=513 (scale factor 0x8) = 131328
– Http: Response, HTTP/1.1, Status: Ok, URL: /_vti_bin/shtml.dll/_vti_rpc
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Server:  Microsoft-IIS/7.5
    Date:  Tue, 14 Feb 2012 15:36:07 GMT
    Connection:  close
  + ContentType:  application/x-vermeer-rpc
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    HeaderEnd: CRLF
    payload: HttpContentType =  application/x-vermeer-rpc
– FrontPage: (Response) url_to_web_url:14.0.0.6009;
  – FrontPageHtml: 0x1
     FPSHtmlBegin: <html>
   – FPSHtmlHead: HtmlTitle = vermeer RPC packet
      FPSHtmlHeadBegin: <head>
    – FPSHtmlTitle: vermeer RPC packet
       FPSHtmlTitleBegin: <title>
     + FPSHtmlTitleData: vermeer RPC packet
       FPSHtmlTitleEnd: </title>
      FPSHtmlHeadEnd: </head>
   – FPSHtmlBody: url_to_web_url:14.0.0.6009;
      FPSHtmlBodyBegin:
<body>
    – FPSHtmlBodyData: url_to_web_url:14.0.0.6009;
     + HtmlSign:
<p>
     – FPMethodHtml: url_to_web_url:14.0.0.6009
        Method: url_to_web_url – Return the URL of the Web site to which a designated file belongs, including its subordinate Web if applicable
      + ServerVersion: 14.0.0.6009
     + HtmlSign:
<p>
     – webUrl: /
        char: /
     + HtmlSign:
<p>
     + fileUrl: Shared Documents/Test8.docx
      FPSHtmlBodyEnd:
</body>
     FPSHtmlEnd:
</html>
    End:

 

 

8.    FPSE Request:  The client then sends FPSE request meta-information for a Web-Site to the client application.  It uses the open service method to facilitate this request. 

From:  http://msdn.microsoft.com/en-us/library/ms446353.aspx

  Frame: Number = 201, Captured Frame Length = 113, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14396, Total IP Length = 99
+ Tcp: Flags=…AP…, SrcPort=46991, DstPort=9999, PayloadLen=59, Seq=3991500678 – 3991500737, Ack=350150134, Win=32649 (scale factor 0x2) = 130596
– Http: HTTP Payload, URL: /_vti_bin/_vti_aut/author.dll
    payload: HttpContentType =  application/x-www-form-urlencoded
– FrontPage: (Request) open_service:14.0.0.6009;ServiceName = /;
  – FrontPageUrl: open_service:14.0.0.6009;ServiceName = /;
   – FPMethod: open_service:14.0.0.6009
      Method: open_service – Provides a Web’s meta information to the client
    + ServerVersion: 14.0.0.6009
   – ServiceName: /
      FPByte: /
    End:

 

9.    FPSE Response:  The server provides the requested meta information of the site below:

  Frame: Number = 203, Captured Frame Length = 1514, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27802, Total IP Length = 1500
+ Tcp: Flags=…A…., SrcPort=9999, DstPort=46991, PayloadLen=1460, Seq=350150134 – 350151594, Ack=3991500737, Win=513 (scale factor 0x8) = 131328
– Http: Response, HTTP/1.1, Status: Ok, URL: /_vti_bin/_vti_aut/author.dll
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Server:  Microsoft-IIS/7.5
    Date:  Tue, 14 Feb 2012 15:36:07 GMT
    Connection:  close
  + ContentType:  application/x-vermeer-rpc
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    HeaderEnd: CRLF
    payload: HttpContentType =  application/x-vermeer-rpc
– FrontPage: (Response) open_service:14.0.0.6009;
  – FrontPageHtml: 0x1
     FPSHtmlBegin: <html>
   – FPSHtmlHead: HtmlTitle = vermeer RPC packet
      FPSHtmlHeadBegin: <head>
    – FPSHtmlTitle: vermeer RPC packet
       FPSHtmlTitleBegin: <title>
     + FPSHtmlTitleData: vermeer RPC packet
       FPSHtmlTitleEnd: </title>
      FPSHtmlHeadEnd: </head>
   – FPSHtmlBody: open_service:14.0.0.6009;
      FPSHtmlBodyBegin:
<body>
    – FPSHtmlBodyData: open_service:14.0.0.6009;
     + HtmlSign:
<p>
     – FPMethodHtml: open_service:14.0.0.6009
        Method: open_service – Provides a Web’s meta information to the client
      + ServerVersion: 14.0.0.6009
     + HtmlSign:
<p>
     – service:
      – ListInfo: 0x1 Members
         ListInfoHtmlBegin: [
         InfoBeginHtml:
       – InfoData: ServiceName = ;
        + service_name:
        – MetaInfo:
           MetaInfoHtmlBegin: [
           InfoBeginHtml:
         + MetaInfoData: vti_defaultlanguage = en-us (Type = String and Write Enable)
         + MetaInfoData: ratings_emptyiconurl = /_layouts/Images/RatingsEmpty.png (Type = String and Write Enable)
         + MetaInfoData: vti_servercharsets = windows-1257 iso-8859-5 big5 windows-1252 iso-8859-9 windows-874 utf-8 windows-1256 gb2312 iso-8859-4 windows-1251 ks_c_5601-1987 iso-8859-6 gb18030 iso-2022-jp koi8-r iso-8859-1 iso-8859-8 windows-1253 windows-1258 windows-
         + MetaInfoData: vti_toolpaneurl =
http://wfe:9999/_layouts/toolpane.aspx (Type = String and Ignore)
         + MetaInfoData: vti_assemblyversion = Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c (Type = String and Ignore)
         + MetaInfoData: vti_customuploadpage = /_layouts/UploadEx.aspx (Type = String and Write Enable)
         + MetaInfoData: vti_hasonetlayoutfiles = true (Type = Boolean and Read Only)
         + MetaInfoData: vti_associategroups = 7;3;3;6;5 (Type = String and Write Enable)
         + MetaInfoData: enabledhelpcollections = VGSEndUser;#FastEndUser;#SQLWSSAddIn (Type = String and Write Enable)
         + MetaInfoData: mossMDNHints_b80ea5a7-c89d-4dde-aaea-59857ab62704 = 0 (Type = String and Write Enable)
         + MetaInfoData: vti_casesensitiveurls = 0 (Type = Int and Ignore)
         + MetaInfoData: vti_masterurl = /_catalogs/masterpage/v4.master (Type = String and Ignore)
         + MetaInfoData: disabledhelpcol = /_catalogs/masterpage/v4.master (Type = )

 

10.    FPSE Request:  The client request the document metainfo by running method get_docs_metainfo against the targeted document. 

http://msdn.microsoft.com/en-us/library/ms457496.aspx

  Frame: Number = 216, Captured Frame Length = 257, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14404, Total IP Length = 243
+ Tcp: Flags=…AP…, SrcPort=46992, DstPort=9999, PayloadLen=203, Seq=3889723891 – 3889724094, Ack=642547811, Win=32714 (scale factor 0x2) = 130856
– Http: HTTP Payload, URL: /_vti_bin/_vti_aut/author.dll
    payload: HttpContentType =  application/x-www-form-urlencoded
– FrontPage: (Request) get_docs_metainfo:14.0.0.6009;
  – FrontPageUrl: get_docs_metainfo:14.0.0.6009;
   – FPMethod: get_docs_metainfo:14.0.0.6009
     Method: get_docs_metainfo – Retrieve meta information for the files in the current Web
    + ServerVersion: 14.0.0.6009
   – Url_List:
http://wfe:9999/Shared Documents/Test8.docx;http://wfe:9999/Shared Documents;
    – ListInfo: 
http://wfe:9999/Shared Documents/Test8.docx;http://wfe:9999/Shared Documents;
       ListInfoUrlBegin: [
     + InfoListData:
http://wfe:9999/Shared Documents/Test8.docx
     + InfoListData:
http://wfe:9999/Shared Documents
       ListInfoUrlEnd: ]
      Terminal: &
   + ListHiddenDocs: false
   + ListLinkInfo: false
    End:

 

11.    FPSE Response:  The server responds with the metainfo for the document.

  Frame: Number = 218, Captured Frame Length = 1514, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27815, Total IP Length = 1500
+ Tcp: Flags=…A…., SrcPort=9999, DstPort=46992, PayloadLen=1460, Seq=642547811 – 642549271, Ack=3889724094, Win=508 (scale factor 0x8) = 130048
– Http: Response, HTTP/1.1, Status: Ok, URL: /_vti_bin/_vti_aut/author.dll
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Server:  Microsoft-IIS/7.5
    Date:  Tue, 14 Feb 2012 15:36:08 GMT
    Connection:  close
  + ContentType:  application/x-vermeer-rpc
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    HeaderEnd: CRLF
    payload: HttpContentType =  application/x-vermeer-rpc
– FrontPage: (Response) get_docs_metainfo:14.0.0.6009;
  – FrontPageHtml: 0x1
     FPSHtmlBegin: <html>
   – FPSHtmlHead: HtmlTitle = vermeer RPC packet
      FPSHtmlHeadBegin: <head>
    – FPSHtmlTitle: vermeer RPC packet
       FPSHtmlTitleBegin: <title>
     + FPSHtmlTitleData: vermeer RPC packet
       FPSHtmlTitleEnd: </title>
      FPSHtmlHeadEnd: </head>
   – FPSHtmlBody: get_docs_metainfo:14.0.0.6009;
      FPSHtmlBodyBegin:
<body>
    – FPSHtmlBodyData: get_docs_metainfo:14.0.0.6009;
     + HtmlSign:
<p>
     – FPMethodHtml: get_docs_metainfo:14.0.0.6009
        Method: get_docs_metainfo – Retrieve meta information for the files in the current Web
      + ServerVersion: 14.0.0.6009
     + HtmlSign:
<p>
     – DocumentList:
        TopLevelstart:
<ul>
      – ListInfo: 0x1 Members
         ListInfoHtmlBegin: [
         InfoBeginHtml:
       – InfoData: DocumentName = Shared Documents/Test8.docx;
        + DocumetName: Shared Documents/Test8.docx
        – MetaInfo:
           MetaInfoHtmlBegin: [
           InfoBeginHtml:
         + MetaInfoData: Subject =  (Type = Unknown Type)
         + MetaInfoData: vti_rtag = rt:B33158C8-8CF0-4BBF-8001-3028AD6B5350@00000000001 (Type = String and Write Enable)
         + MetaInfoData: vti_etag = “&#123;B33158C8-8CF0-4BBF-8001-3028AD6B5350&#125;,1” (Type = String and Write Enable)
         + MetaInfoData: vti_thumbnailexists = false (Type = Boolean and Write Enable)
         + MetaInfoData: vti_parserversion = 14.0.0.6112 (Type = String and Read Only)
         + MetaInfoData: vti_timecreated = 14 Feb 2012 03:33:44 -0000 (Type = Time and Read Only)
         + MetaInfoData: vti_folderitemcount = 0 (Type = Int and Read Only)
         + MetaInfoData: _Category =  (Type = Unknown Type)
         + MetaInfoData: vti_stickycachedpluggableparserprops = Subject Keywords _Status vti_title _Author _Category ContentType _Comments (Type = String Vector and Ignore)
         + MetaInfoData: vti_canmaybeedit = true (Type = Boolean and Ignore)
         + MetaInfoData: _Comments =  (Type = Unknown Type)
         + MetaInfoData: vti_author = SHAREPOINT\system (Type = String and Read Only)
         + MetaInfoData: vti_sourcecontrolversion = V1.0 (Type = String and Read Only)
         + MetaInfoData: vti_sourcecontrolcookie = fp_internal (Type = String and Read Only)
         + MetaInfoData: vti_previewexists = false (Type = Boolean and Write Enable)
         + MetaInfoData: vti_level = 1 (Type = Int and Read Only)
         + MetaInfoData: Keywords =  (Type = Unknown Type)
         + MetaInfoData: _Status =  (Type = Unknown Type)
         + MetaInfoData: vti_modifiedby = SHAREPOINT\system (Type = String and Read Only)
         + MetaInfoData: vti_filesize = 18411 (Type = Int and Read Only)
         + MetaInfoData: vti_foldersubfolderitemcount = 0 (Type = Int and Read Only)
         + MetaInfoData: vti_title =  (Type = Unknown Type)
         + MetaInfoData: _Author = Russ Maxwell (Type = String and Write Enable)
         + MetaInfoData: ContentType =  (Type = Unknown Type)
         + MetaInfoData: ContentTypeId = 0x010100190C2FB49152074EBE0F739178D89BF8
<li (Type = String and Write Enable)

 

12.    HTTP – SOAP Request:  Client submits a POST to /_vti_bin/cellstoreage.svc/CellStorageService

This service allows client computers to synchronize changes made to shared files that are stored on a server.  In this case, it’s used to download the file from the server to the client.  This is also referred to as the “File Synchronization via SOAP over HTTP Protocol”

http://msdn.microsoft.com/en-us/library/websvccellstorage.aspx

  Frame: Number = 232, Captured Frame Length = 757, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14409, Total IP Length = 743
+ Tcp: Flags=…AP…, SrcPort=46993, DstPort=9999, PayloadLen=703, Seq=3699146994 – 3699147697, Ack=2981864978, Win=513 (scale factor 0x8) = 131328
– Http: Request, POST /_vti_bin/cellstorage.svc/CellStorageService , Using NTLM Authorization
    Command: POST
  – URI: /_vti_bin/cellstorage.svc/CellStorageService
     Location: /_vti_bin/cellstorage.svc/CellStorageService
    ProtocolVersion: HTTP/1.1
    Cache-Control:  no-cache
    Connection:  Keep-Alive
    Pragma:  no-cache
  – ContentType:  multipart/related; type=”application/xop+xml”; boundary=”urn:uuid:8adafd52-a33a-4665-b535-d99d195335d6″; start=”<69213406-6aa3-4ffb-a2da-c6fae4d07276@tempuri.org>”; start-Info=”text/xml; charset=utf-8″
   + MediaType:  multipart/related; type=”application/xop+xml”; boundary=”urn:uuid:8adafd52-a33a-4665-b535-d99d195335d6″; start=”<69213406-6aa3-4ffb-a2da-c6fae4d07276@tempuri.org>”; start-Info=”text/xml; charset=utf-8″
  + Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}
    UserAgent:  Microsoft Office Word 2010 (14.0.6023) Windows NT 6.1
  – SOAPAction:  “
http://schemas.microsoft.com/sharepoint/soap/ICellStorages/ExecuteCellStorageRequest”
     Value: http://schemas.microsoft.com/sharepoint/soap/ICellStorages/ExecuteCellStorageRequest
    ContentLength:  0
    Host:  wfe:9999
  + Authorization: NTLM
    HeaderEnd: CRLF

 

 

13.    HTTP Response from Server

  Frame: Number = 238, Captured Frame Length = 1425, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27842, Total IP Length = 1411
+ Tcp: Flags=…AP…, SrcPort=9999, DstPort=46993, PayloadLen=1371, Seq=2981865521 – 2981866892, Ack=3699151391, Win=509 (scale factor 0x8) = 130304
– Http: Response, HTTP/1.1, Status: Ok, URL: /_vti_bin/cellstorage.svc/CellStorageService
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Cache-Control:  private
    TransferEncoding:  chunked
  + ContentType:  multipart/related; type=”application/xop+xml”;start=”<
http://tempuri.org/0>”;boundary=”uuid:973cbe86-3867-47b7-bf03-927ddd6ba2ed+id=3″;start-info=”text/xml”
    Server:  Microsoft-IIS/7.5
    SPRequestGuid:  7f5c207a-6f55-4049-8e8c-7e5d9b8a067b
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    X-SharePointHealthScore:  4
    MIME-Version:  1.0
    XAspNetVersion:  2.0.50727
    Persistent-Auth:  true
    XPoweredBy:  ASP.NET
    MicrosoftSharePointTeamServices:  14.0.0.6112
    Date:  Tue, 14 Feb 2012 15:36:08 GMT
    HeaderEnd: CRLF
  – chunkSize: 747
     Size: 747
    ChunkPayload: HttpContentType =  multipart/related; type=”application/xop+xml”;start=”<
http://tempuri.org/0>”;boundary=”uuid:973cbe86-3867-47b7-bf03-927ddd6ba2ed+id=3″;start-info=”text/xml”
    FooterEnd: CRLF
+ Mime: MediaType = application/xop+xml
– Soap: xmlns:s=”
http://schemas.xmlsoap.org/soap/envelope/”
  – Envelope: <s:Envelope>
   – STag: <s:Envelope xmlns:s=”
http://schemas.xmlsoap.org/soap/envelope/”>
    – Tag: <s:Envelope xmlns:s=”
http://schemas.xmlsoap.org/soap/envelope/”>
     – TagName: s:Envelope
        NamespacePrefix: s
        Name: Envelope
     + Attributes: xmlns:s=”
http://schemas.xmlsoap.org/soap/envelope/”
   – Body: <s:Body>
    – STag: <s:Body>
     – Tag: <s:Body>
      – TagName: s:Body
         NamespacePrefix: s
         Name: Body
    – Node: XmlElement:<ResponseVersion>
     – EmptyElement: <ResponseVersion Version=”2″ MinorVersion=”0″ xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”/>
      – Tag: <ResponseVersion Version=”2″ MinorVersion=”0″ xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”/>
       – TagName: ResponseVersion
          Name: ResponseVersion
       + Attributes: Version=”2″ MinorVersion=”0″ xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”
    – Node: XmlElement:<ResponseCollection>
     – STag: <ResponseCollection WebUrl=”
http://wfe:9999″ xmlns=”http://schemas.microsoft.com/sharepoint/soap/”>
      – Tag: <ResponseCollection WebUrl=”
http://wfe:9999″ xmlns=”http://schemas.microsoft.com/sharepoint/soap/”>
       – TagName: ResponseCollection
          Name: ResponseCollection
       + Attributes: WebUrl=”
http://wfe:9999″ xmlns=”http://schemas.microsoft.com/sharepoint/soap/”
     – Element: XmlElement:<Response>
      – STag: <Response Url=”
http://wfe:9999/Shared%20Documents/Test8.docx” RequestToken=”1″ HealthScore=”4″>
       – Tag: <Response Url=”
http://wfe:9999/Shared%20Documents/Test8.docx” RequestToken=”1″ HealthScore=”4″>
        – TagName: Response
           Name: Response
        + Attributes: Url=”
http://wfe:9999/Shared%20Documents/Test8.docx” RequestToken=”1″ HealthScore=”4″
      – Element: XmlElement:<SubResponse>
       – STag: <SubResponse SubRequestToken=”1″ ErrorCode=”Success” HResult=”0″>
        – Tag: <SubResponse SubRequestToken=”1″ ErrorCode=”Success” HResult=”0″>
         – TagName: SubResponse
            Name: SubResponse
         + Attributes: SubRequestToken=”1″ ErrorCode=”Success” HResult=”0″
       – Element: XmlElement:<SubResponseData>
        – EmptyElement: <SubResponseData LockType=”SchemaLock” CoauthStatus=”Alone” TransitionID=”b33158c8-8cf0-4bbf-8001-3028ad6b5350″/>
         – Tag: <SubResponseData LockType=”SchemaLock” CoauthStatus=”Alone” TransitionID=”b33158c8-8cf0-4bbf-8001-3028ad6b5350″/>
          – TagName: SubResponseData
             Name: SubResponseData
          + Attributes: LockType=”SchemaLock” CoauthStatus=”Alone” TransitionID=”b33158c8-8cf0-4bbf-8001-3028ad6b5350″
       – ETag: </SubResponse>
        – Tag: </SubResponse>
         – TagName: SubResponse
            Name: SubResponse
      ETag:

The subsequent frames are all coming from the server via HTTP Payload packets from cellstorage.svc.  I believe this is when it’s streaming the file to the client and not easy to read because it does so in chunks in BLOB format.

    For Example:

      Frame: Number = 242, Captured Frame Length = 439, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27855, Total IP Length = 425
+ Tcp: Flags=…AP…, SrcPort=9999, DstPort=46993, PayloadLen=385, Seq=2981867428 – 2981867813, Ack=3699151391, Win=509 (scale factor 0x8) = 130304
Http: HTTP Payload, URL: /_vti_bin/cellstorage.svc/CellStorageService
  – chunkSize: 378
     Size: 378
   ChunkPayloadContinuation: Binary Large Object (378 Bytes)
        FooterEnd: CRLF

 

 

14.    HTTP Request:  The client submits a Post to webs.asmx which is a request for a URL of the parent site for the specified page URL:

http://msdn.microsoft.com/en-us/library/websvcwebs.webs.weburlfrompageurl.aspx

  Frame: Number = 315, Captured Frame Length = 1119, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14427, Total IP Length = 1105
+ Tcp: Flags=…AP…, SrcPort=46994, DstPort=9999, PayloadLen=1065, Seq=3401034132 – 3401035197, Ack=1507241640, Win=32649 (scale factor 0x2) = 130596
Http: Request, POST /_vti_bin/webs.asmx , Using NTLM Authorization
    Command: POST
  – URI: /_vti_bin/webs.asmx
     Location: /_vti_bin/webs.asmx
    ProtocolVersion: HTTP/1.1
  – ContentType:  text/xml; charset=utf-8
   + MediaType:  text/xml; charset=utf-8
  – SOAPAction: 
http://schemas.microsoft.com/sharepoint/soap/WebUrlFromPageUrl
     DefaultValue: http://schemas.microsoft.com/sharepoint/soap/WebUrlFromPageUrl
    X-Office-Version:  14.0.6106
    UserAgent:  Microsoft Office/14.0 (Windows NT 6.1; Microsoft Word 14.0.6106; Pro)
    Host:  wfe:9999
    ContentLength:  309
    Connection:  Keep-Alive
    Cache-Control:  no-cache
  + Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}
  + Authorization: NTLM
    HeaderEnd: CRLF

 

 

15.    SOAP Request:   The client includes the following SOAP request in the subsequent frame:

  Frame: Number = 316, Captured Frame Length = 363, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14428, Total IP Length = 349
+ Tcp: Flags=…AP…, SrcPort=46994, DstPort=9999, PayloadLen=309, Seq=3401035197 – 3401035506, Ack=1507241640, Win=32649 (scale factor 0x2) = 130596
– Http: HTTP Payload, URL: /_vti_bin/webs.asmx
  – payload: HttpContentType =  text/xml; charset=utf-8
   – Xml: version=”1.0″ encoding=”utf-8″
      XmlPropertiesInitiator:
    – XMLDecl: XmlElement:<{xml directive}>
     – Directive: <?xml version=”1.0″ encoding=”utf-8″?>
      – Tag: <?xml version=”1.0″ encoding=”utf-8″?>
       – TagName: xml
          Name: xml
       + Attributes: version=”1.0″ encoding=”utf-8″
– Soap: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”
  – Envelope: <soap:Envelope>
   – STag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”>
    – Tag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope
     + Attributes: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”
   – Body: <soap:Body>
    – STag: <soap:Body>
     – Tag: <soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
    – Node: XmlElement:<WebUrlFromPageUrl>
     – STag: <WebUrlFromPageUrl xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”>
      – Tag: <WebUrlFromPageUrl xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”>
       – TagName: WebUrlFromPageUrl
          Name: WebUrlFromPageUrl
       + Attributes: xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”
     – Element: XmlElement:<pageUrl> – http://wfe:9999/Shared%20Documents/Test8.docx
      – STag: <pageUrl>
       – Tag: <pageUrl>
        – TagName: pageUrl
           Name: pageUrl
        Content:
http://wfe:9999/Shared%20Documents/Test8.docx
      – ETag: </pageUrl>
       – Tag: </pageUrl>
        – TagName: pageUrl
           Name: pageUrl
     – ETag: </WebUrlFromPageUrl>
      – Tag: </WebUrlFromPageUrl>
       – TagName: WebUrlFromPageUrl
          Name: WebUrlFromPageUrl
    – ETag: </soap:Body>
     – Tag: </soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
   – ETag: </soap:Envelope>
    – Tag: </soap:Envelope>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope

 

16.    SOAP Response:   Server responds to the above SOAP request with the URL of the parent site

  Frame: Number = 318, Captured Frame Length = 944, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27919, Total IP Length = 930
+ Tcp: Flags=…AP…, SrcPort=9999, DstPort=46994, PayloadLen=890, Seq=1507241640 – 1507242530, Ack=3401035506, Win=513 (scale factor 0x8) = 131328
– Http: Response, HTTP/1.1, Status: Ok, URL: /_vti_bin/webs.asmx
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Cache-Control:  private, max-age=0
  + ContentType:  text/xml; charset=utf-8
    Server:  Microsoft-IIS/7.5
    SPRequestGuid:  20f0848a-331c-49f5-83f8-1b8da3e6a6f6
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    X-SharePointHealthScore:  4
    XAspNetVersion:  2.0.50727
    Persistent-Auth:  true
    XPoweredBy:  ASP.NET
    MicrosoftSharePointTeamServices:  14.0.0.6112
    Date:  Tue, 14 Feb 2012 15:36:09 GMT
    ContentLength:  421
    HeaderEnd: CRLF
  – payload: HttpContentType =  text/xml; charset=utf-8
   – Xml: version=”1.0″ encoding=”utf-8″
      XmlPropertiesInitiator:
    – XMLDecl: XmlElement:<{xml directive}>
     – Directive: <?xml version=”1.0″ encoding=”utf-8″?>
      – Tag: <?xml version=”1.0″ encoding=”utf-8″?>
       – TagName: xml
          Name: xml
       + Attributes: version=”1.0″ encoding=”utf-8″
– Soap: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
  – Envelope: <soap:Envelope>
   – STag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
    – Tag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope
     + Attributes: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
   – Body: <soap:Body>
    – STag: <soap:Body>
     – Tag: <soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
    – Node: XmlElement:<WebUrlFromPageUrlResponse>
     – STag: <WebUrlFromPageUrlResponse xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”>
      – Tag: <WebUrlFromPageUrlResponse xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”>
       – TagName: WebUrlFromPageUrlResponse
          Name: WebUrlFromPageUrlResponse
       + Attributes: xmlns=”
http://schemas.microsoft.com/sharepoint/soap/”
     – Element: XmlElement:<WebUrlFromPageUrlResult> – http://wfe:9999
      – STag: <WebUrlFromPageUrlResult>
       – Tag: <WebUrlFromPageUrlResult>
        – TagName: WebUrlFromPageUrlResult
           Name: WebUrlFromPageUrlResult
        Content:
http://wfe:9999
      – ETag: </WebUrlFromPageUrlResult>
       – Tag: </WebUrlFromPageUrlResult>
        – TagName: WebUrlFromPageUrlResult
           Name: WebUrlFromPageUrlResult
     – ETag: </WebUrlFromPageUrlResponse>
      – Tag: </WebUrlFromPageUrlResponse>
       – TagName: WebUrlFromPageUrlResponse
          Name: WebUrlFromPageUrlResponse
    – ETag: </soap:Body>
     – Tag: </soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
   – ETag: </soap:Envelope>
    – Tag: </soap:Envelope>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope

 

 

17.    SOAP Request:   The last request from client is a SOAP request to /_vti_bin/workflow.asmx  and calls GetWorkflowDataForItem which pulls the workflow data for a specific user for a given item.

http://msdn.microsoft.com/en-us/library/workflow.workflow.getworkflowdataforitem(v=office.12).aspx

  Frame: Number = 319, Captured Frame Length = 823, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[00-15-5D-21-17-0A],SourceAddress:[02-00-4C-4F-4F-50]
+ Ipv4: Src = 10.1.0.5, Dest = 10.1.0.12, Next Protocol = TCP, Packet ID = 14429, Total IP Length = 809
+ Tcp: Flags=…AP…, SrcPort=46994, DstPort=9999, PayloadLen=769, Seq=3401035506 – 3401036275, Ack=1507242530, Win=32850 (scale factor 0x2) = 131400
Http: Request, POST /_vti_bin/workflow.asmx
    Command: POST
  – URI: /_vti_bin/workflow.asmx
     Location: /_vti_bin/workflow.asmx
    ProtocolVersion: HTTP/1.1
  – ContentType:  text/xml; charset=utf-8
   + MediaType:  text/xml; charset=utf-8
  – SOAPAction: 
http://schemas.microsoft.com/sharepoint/soap/workflow/GetWorkflowDataForItem
     DefaultValue: http://schemas.microsoft.com/sharepoint/soap/workflow/GetWorkflowDataForItem
    X-Office-Version:  14.0.6106
    UserAgent:  Microsoft Office/14.0 (Windows NT 6.1; Microsoft Word 14.0.6106; Pro)
    Host:  wfe:9999
    ContentLength:  324
    Connection:  Keep-Alive
    Cache-Control:  no-cache
  + Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}
    HeaderEnd: CRLF
  – payload: HttpContentType =  text/xml; charset=utf-8
   – Xml: version=”1.0″ encoding=”utf-8″
      XmlPropertiesInitiator:
    – XMLDecl: XmlElement:<{xml directive}>
     – Directive: <?xml version=”1.0″ encoding=”utf-8″?>
      – Tag: <?xml version=”1.0″ encoding=”utf-8″?>
       – TagName: xml
          Name: xml
       + Attributes: version=”1.0″ encoding=”utf-8″
– Soap: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”
  – Envelope: <soap:Envelope>
   – STag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”>
    – Tag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope
     + Attributes: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/”
   – Body: <soap:Body>
    – STag: <soap:Body>
     – Tag: <soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
    – Node: XmlElement:<GetWorkflowDataForItem>
     – STag: <GetWorkflowDataForItem xmlns=”
http://schemas.microsoft.com/sharepoint/soap/workflow/”>
      – Tag: <GetWorkflowDataForItem xmlns=”
http://schemas.microsoft.com/sharepoint/soap/workflow/”>
       – TagName: GetWorkflowDataForItem
          Name: GetWorkflowDataForItem
       + Attributes: xmlns=”
http://schemas.microsoft.com/sharepoint/soap/workflow/”
     – Element: XmlElement:<item> – http://wfe:9999/Shared%20Documents/Test8.docx
      – STag: <item>
       – Tag: <item>
        – TagName: item
           Name: item
        Content:
http://wfe:9999/Shared%20Documents/Test8.docx
      – ETag: </item>
       – Tag: </item>
        – TagName: item
           Name: item
     – ETag: </GetWorkflowDataForItem>
      – Tag: </GetWorkflowDataForItem>
       – TagName: GetWorkflowDataForItem
          Name: GetWorkflowDataForItem
    – ETag: </soap:Body>
     – Tag: </soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
   – ETag: </soap:Envelope>
    – Tag: </soap:Envelope>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope

 

18.    SOAP Response:  Server responds and provides workflow data per client request

  Frame: Number = 320, Captured Frame Length = 1273, MediaType = ETHERNET
+ Ethernet: Etype = Internet IP (IPv4),DestinationAddress:[02-00-4C-4F-4F-50],SourceAddress:[00-15-5D-21-17-0A]
+ Ipv4: Src = 10.1.0.12, Dest = 10.1.0.5, Next Protocol = TCP, Packet ID = 27933, Total IP Length = 1259
+ Tcp: Flags=…AP…, SrcPort=9999, DstPort=46994, PayloadLen=1219, Seq=1507242530 – 1507243749, Ack=3401036275, Win=510 (scale factor 0x8) = 130560
– Http: Response, HTTP/1.1, Status: Ok, URL: /_vti_bin/workflow.asmx
    ProtocolVersion: HTTP/1.1
    StatusCode: 200, Ok
    Reason: OK
    Cache-Control:  private, max-age=0
  + ContentType:  text/xml; charset=utf-8
    Server:  Microsoft-IIS/7.5
    SPRequestGuid:  31528070-4810-4c8a-b228-c8594f0cce4b
    Set-Cookie:  WSS_KeepSessionAuthenticated={58cbac57-f6eb-4c28-89ce-76505b69601b}; path=/
    X-SharePointHealthScore:  4
    XAspNetVersion:  2.0.50727
    XPoweredBy:  ASP.NET
    MicrosoftSharePointTeamServices:  14.0.0.6112
    Date:  Tue, 14 Feb 2012 15:36:09 GMT
    ContentLength:  773
    HeaderEnd: CRLF
  – payload: HttpContentType =  text/xml; charset=utf-8
   – Xml: version=”1.0″ encoding=”utf-8″
      XmlPropertiesInitiator:
    – XMLDecl: XmlElement:<{xml directive}>
     – Directive: <?xml version=”1.0″ encoding=”utf-8″?>
      – Tag: <?xml version=”1.0″ encoding=”utf-8″?>
       – TagName: xml
          Name: xml
       + Attributes: version=”1.0″ encoding=”utf-8″
– Soap: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
  – Envelope: <soap:Envelope>
   – STag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
    – Tag: <soap:Envelope xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope
     + Attributes: xmlns:soap=”
http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
   – Body: <soap:Body>
    – STag: <soap:Body>
     – Tag: <soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
    – Node: XmlElement:<GetWorkflowDataForItemResponse>
     – STag: <GetWorkflowDataForItemResponse xmlns=”
http://schemas.microsoft.com/sharepoint/soap/workflow/”>
      – Tag: <GetWorkflowDataForItemResponse xmlns=”
http://schemas.microsoft.com/sharepoint/soap/workflow/”>
       – TagName: GetWorkflowDataForItemResponse
          Name: GetWorkflowDataForItemResponse
       + Attributes: xmlns=”
http://schemas.microsoft.com/sharepoint/soap/workflow/”
     – Element: XmlElement:<GetWorkflowDataForItemResult>
      – STag: <GetWorkflowDataForItemResult>
       – Tag: <GetWorkflowDataForItemResult>
        – TagName: GetWorkflowDataForItemResult
           Name: GetWorkflowDataForItemResult
      – Element: XmlElement:<WorkflowData>
       – STag: <WorkflowData>
        – Tag: <WorkflowData>
         – TagName: WorkflowData
            Name: WorkflowData
       – Element: XmlElement:<ToDoData>
        – STag: <ToDoData>
         – Tag: <ToDoData>
          – TagName: ToDoData
             Name: ToDoData
        – ETag: </ToDoData>
         – Tag: </ToDoData>
          – TagName: ToDoData
             Name: ToDoData
       – Element: XmlElement:<TemplateData>
        – STag: <TemplateData>
         – Tag: <TemplateData>
          – TagName: TemplateData
             Name: TemplateData
        – Element: XmlElement:<Web>
         – EmptyElement: <Web Title=”HiAgain” Url=”
http://wfe:9999″ />
          – Tag: <Web Title=”HiAgain” Url=”
http://wfe:9999″ />
           – TagName: Web
              Name: Web
           + Attributes: Title=”HiAgain” Url=”
http://wfe:9999″
        – Element: XmlElement:<List>
         – EmptyElement: <List Title=”Shared Documents” Url=”
http://wfe:9999/Shared Documents” />
          – Tag: <List Title=”Shared Documents” Url=”
http://wfe:9999/Shared Documents” />
           – TagName: List
              Name: List
           + Attributes: Title=”Shared Documents” Url=”
http://wfe:9999/Shared Documents”
        – Element: XmlElement:<WorkflowTemplates>
         – STag: <WorkflowTemplates>
          – Tag: <WorkflowTemplates>
           – TagName: WorkflowTemplates
              Name: WorkflowTemplates
         – ETag: </WorkflowTemplates>
          – Tag: </WorkflowTemplates>
           – TagName: WorkflowTemplates
              Name: WorkflowTemplates
        – ETag: </TemplateData>
         – Tag: </TemplateData>
          – TagName: TemplateData
             Name: TemplateData
       – Element: XmlElement:<ActiveWorkflowsData>
        – STag: <ActiveWorkflowsData>
         – Tag: <ActiveWorkflowsData>
          – TagName: ActiveWorkflowsData
             Name: ActiveWorkflowsData
        – Element: XmlElement:<Workflows>
         – STag: <Workflows>
          – Tag: <Workflows>
           – TagName: Workflows
              Name: Workflows
         – ETag: </Workflows>
          – Tag: </Workflows>
           – TagName: Workflows
              Name: Workflows
        – ETag: </ActiveWorkflowsData>
         – Tag: </ActiveWorkflowsData>
          – TagName: ActiveWorkflowsData
             Name: ActiveWorkflowsData
       – Element: XmlElement:<DefaultWorkflows>
        – STag: <DefaultWorkflows>
         – Tag: <DefaultWorkflows>
          – TagName: DefaultWorkflows
             Name: DefaultWorkflows
        – ETag: </DefaultWorkflows>
         – Tag: </DefaultWorkflows>
          – TagName: DefaultWorkflows
             Name: DefaultWorkflows
       – ETag: </WorkflowData>
        – Tag: </WorkflowData>
         – TagName: WorkflowData
            Name: WorkflowData
      – ETag: </GetWorkflowDataForItemResult>
       – Tag: </GetWorkflowDataForItemResult>
        – TagName: GetWorkflowDataForItemResult
           Name: GetWorkflowDataForItemResult
     – ETag: </GetWorkflowDataForItemResponse>
      – Tag: </GetWorkflowDataForItemResponse>
       – TagName: GetWorkflowDataForItemResponse
          Name: GetWorkflowDataForItemResponse
    – ETag: </soap:Body>
     – Tag: </soap:Body>
      – TagName: soap:Body
         NamespacePrefix: soap
         Name: Body
   – ETag: </soap:Envelope>
    – Tag: </soap:Envelope>
     – TagName: soap:Envelope
        NamespacePrefix: soap
        Name: Envelope

 

That’s it for the Client to Server interaction when downloading a document from a Document Library.   Some additional resources are available below:

http://msdn.microsoft.com/en-us/library/cc339482(v=office.12).aspx

http://msdn.microsoft.com/en-us/library/ms442469.aspx

http://msdn.microsoft.com/en-us/library/websvccellstorage.aspx

http://msdn.microsoft.com/en-us/library/webs(v=office.12).aspx

http://msdn.microsoft.com/en-us/library/websvcwebs.webs.weburlfrompageurl.aspx

http://msdn.microsoft.com/en-us/library/workflow.workflow.getworkflowdataforitem(v=office.12).aspx

http://msdn.microsoft.com/en-us/library/ms457496.aspx

http://msdn.microsoft.com/en-us/library/ms460198.aspx

 

Thanks,

Russ Maxwell, MSFT   Punch