当一个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的Physicalpath (root directory) C:\inetpub\wwwroot\wss\VirtualDirectories\clients.contoso.com80.
在传统的ASP.Netwebsites,实际的Content被存储在rootdirectory。但是SharePoint将Content存储在SQLServer的ContentDatabase中,IIS不知道如何定位和访问这部分Content.
However, 在IISWeb Site的rootdirectory下的Configurationfile和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。