关于web开发的一点理解

                               对于web开发上的一点理解


1 宏观上的一点理解   

网页从请求第地址 到获得页面的过程:从客户端(浏览器)通过地址 从soket把请求报文封装发往服务端   服务端通过解析报文并处理报文最后把处理的结果

封装成响应报文 发送给客户端(浏览器)  ,客户端解析响应报文  把正文(html css  javascript)渲染成我们见到的页面。 

                            这就是我们如何看到页面的过程

图解

 

2对于网页的开发的框架的一点理解

   上面提到了网页处理的过程  中 服务端解析请求报文 处理请求报文的过程 就是网站开发的框架 (虽然说起来好像很简单 ,其实一个框架的逻辑非常复杂)

    现在我来讲下我较为了解的一个框架  asp.net的框架的处理过程

   iis的处理过程(跟框架无关) 1服务器端Http.sys接收到连接请求  把请求放在队列中 2 sys通知w3svc服务 ,w3svc服务通知应用程序池去在队列中取请求 3  应用程序池去取到请求 4判断请求中的url 是否是html文件(也就是说静态文件)  如果是静态直接返回响应报文   如果不是则通过aspnet_isapi.dll 启动托管坏境这就开始属于asp.net框架了

    框架的过程  1通过ISAPIRuntime.PR(ecp)  和 HttpRuntime.PR(wr) 将请求报文2次进行封装 最终封装成HttpContext

2同过一个HttpAppLicationFactory(对象池) 创建出HttpAppLication对象  (内部实现 1。如果是第一次请求则把gloable文件编译成一个类型 2.调用application_start()方法 3从对象池中取出HttpApplication  如果对象池为空则通过反射用gloable编译成的类型创建出实例

3.管线开始运作(由HttpApplication  操作) 管线里一共有19个事件20多个步骤  这么多事件和步骤我就不一一讲了有兴趣可以自己去查下资料,我只讲讲几个关键的步骤和事件 7事件到8事件执行之间会创建页面对象或者一般处理程序  9事件到10事件之间会根据cookies中的sessionid 初始化session状态 

11事件到12事件之间会执行一般处理或者页面对象 如果是一般处理程序则直接执行就行了 如果是页面对象则开始生命周期(另外在别的文章里详谈)

4最后把得到响应报文通过sys发回客户端  由客户端渲染

 图解

  

  

原文地址:https://www.cnblogs.com/wzjbk/p/4516831.html