最近正在研究asp.net的内部的运行机制,此系列目的是希望把研究的成果和大家分享一下,并且和大家一起探讨asp.net内部的原理,文章是笔者这段时间通过阅读书籍,网上的一些文章和视频并且加上自己的一些见解整理出来的,如果有借鉴其他文章或网站的字段,笔者会在文章的最后给出这些字段的原文链接地址。

  首先介绍下这个系列的大体框架:

  (一)笔者预想在这套系列中先介绍asp。net的内部运行原理,从低到高的“版本”形式介绍,低版本介绍的了asp。net内部原理的大概框架,随着版本的升高,其中各个部分的内部实现愈加的明细。

  (二)介绍完asp。net的内部原理后,笔者打算再详细的介绍下页面生命周期总体过程 。

  (三) 最后此系列将简单的介绍一下HttpModule 注册管道的事件  golable注册管道事件。

 

  好了,闲话少说,言归正文

    什么是asp?

  ASP 是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。 指 Active Server Pages(动态服务器页面) ,运行于 IIS 之中的程序 。

   

  我们大家都知道,上网浏览网页很简单,在地址栏里面输入一个网址,然后就能访问到相应的网页,查看网页里面相应的信息,可是这是怎么实现的呢?

  其实就是两台机器的应用程序相互交互,相当于我们通过浏览器访问另一台电脑上(通过ip地址和端口号)的文件一样,另一台电脑上通过监听这个端口号,接收到请求的信息并处里,然后知道我们要的是什么文件,并对文件作出相应的处理然后返回给我们。两台电脑之间是通过socket交互的,这时,有的小伙伴就会问了,socket交互是要知道对方电脑的ip地址和你要访问应用程序的端口号的啊,可是我在输入网址的时候和并没有输入ip地址和端口号啊。那么我下面列出一个过程给这位小伙伴解答这个问题

  1.当我们输入www.baidu.com这个网址去访百度时候,浏览器会按着HTTP协议生成请求报文数据。

  2.浏览器会检查本机是否 www.baidu.com 这个域名对应的ip地址,如果保存了,则直接通过socket访问,如果没有保存,那么浏览器就会发送一个请求到你做在城市最近的一个DNS服务器(域名解析服务器),服务器拿到域名后解析成ip地址返回给浏览器,浏览器拿到ip地址后开始访问服务器。

  3.浏览器从DNS服务器获得了  www.baidu.com域名对应的服务器电脑IP,则将 请求报文 通过Socket发送到服务器电脑。(注意:Http协议 规定服务器软件使用的默认端口是80,通俗的说,就是如果浏览器访问一个网站页面,浏览器默认就是将 请求报文 发送到服务器80端口,而服务器负责监听这个端口的软件一般就是服务器软件比如asp.net用的IIS,java用的Tomcat。)

  4.服务器软件接受到请求报文,然后处理请求报文接请求的数据和文件,然后按着HTTP协议生成响应报文返回给客户端浏览器,浏览器解析响应,呈现出我们看到的页面。

  这就是我们输入一个网址,然后看到一个页面的整体过程,下面我给出一个流程图来解释我们这个过程。

  

  好了,这就是我今天要分享的第一个版本的asp。net内部运行原理,在下一个版本中,我主要讨论服务器端的那点事。。。最后,如果文章哪些有不对地方,希望大家给出建议和改成。

 

 

 

 

posted on 2013-08-28 10:38  Flx  阅读(811)  评论(2编辑  收藏  举报