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:
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).
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 = "{B33158C8-8CF0-4BBF-8001-3028AD6B5350},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/webs(v=office.12).aspx
Thanks,
Russ Maxwell, MSFT