当一个User用一个独立的URL请求一个Page页的时候,Client端要创建一个Http请求数据包。然后,Client通过解析DNS去获取HostName来确定IP地址:比如Intranet.contoso.com
客户端在数据包的HostHeader Field添加HostName
—>客户端然后通过默认Http端口(80、443)发送数据包给Server的IPaddress
—>IIS接收并且解析请求和确定这个请求是Contoso Intranet IIS Web site (他一定是Port为80,并且以Intranet.contoso.com为HostHeader的IISWeb Site)
在IIS已经确定来自哪个WebSite下的Content被请求时,IIS开始一系列返回请求的Content给客户端的流程。
首先,IIS查找WebApplication的Physical path (root directory) C:\inetpub\wwwroot\wss\VirtualDirectories\clients.contoso.com80.
在传统的ASP.Net websites,实际的Content被存储在rootd irectory。但是SharePoint将Content存储在SQLServer的WssContent数据库中,事实上,IIS是不知道如何定位和访问这部分Content的
However, 在IISWeb Site的root directory下的Configuration file和Web.config定位一个Site作为SharePoint的application并且指令IIS通过这个请求给SharePoint
SharePoint然后解析URL去确定SiteCollection,从而确认哪个ContentDatabase被请求。SharePoint能从SQL中访问Content,并且返回Content给IIS,然后传递Content给客户。
这个请求是被IIS和IIS WebSite中的applicationpool环境内的SharePoint处理。ApplicationPool是个按照一个或者多个w3wp进程来将site请求发给一个server的孤立的存储空间。ApplicationPool的身份是一个在SharePoint中被注册为managedaccount的domainuser account。