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 = “{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/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