1.浏览器发送请求报文到服务器,服务器接收到请求之后,根据请求报文头(url地址)的后缀名解析。
2.以iis服务器为例。他分为两种模式,经典模式和集成模式。主要是经典模式会将请求报文通过aspnet_isapi转交给framwork框架,而集成模式是直接交给framework框架。
3. 如果请求的是静态网页,例如以。html去硬盘中查找,如果找到对应的静态文件就直接返回贵浏览器。
如果是动态网页,例如.aspx,ashx,IIS会根据他的后缀名去处理映射池(处理程序映射)中查找对应的处理程序,然后进入formawork框架
4.isapiRuntime执行他的PR()方法,在内部执行HttpRuntime的PR()方法。在他的内部做了很多事:
(1)创建了上下文对象HttpContext,给上下文(HttpContext)的属性赋值,其中HttpRequest是请求报文对象。seeion,cookie,server,application,hander为空
(2)通过HttpApplicationFactory创建一个HttpAplication对象,通过这个方法执行被请求的页面
( 3)将上下文对象Httpcontext传给HttpAplication的PR()方法, HttpApplication.ProcessRequest(HttpContext context)
5.执行HttpAplication的PR()方法,也即依次调用19个管道事件。6-7验证是否需要回发缓存,8 创建被请求页面类的对象 9 session 11-12 PR()方法
执行完毕之后返回给浏览器。