基于http事件驱动编程

应用程序的状态包括两种信息:客户端状态和会话状态。 客户端状态主要指用户在页面上输入的内容,在服务器端可以很容易获取。 会话状态:http是无状态协议,所以一般使用Cookie完成会话状态。

http协议:超文本传输协议(Hypertext Transfer Protocol)是一种基于文本的协议,它定义了web游览器和wen服务器的通信方式。http数据包通过指向目标ip地址的80端口(默认)使用“传输控制协议”(TCP)进行传输。

http请求:当我们在浏览器中访问一个URL时,它通过可用的“域名系统”DNS将我们所提供的URL的服务器名转化成一个IP地址,接下来浏览器打开一个套接层(socket),并连接到该地址所指服务器的80端口。 get、Post是最常用的HTTP指令,使用get可以通过URL获取任何信息。 Post指令用于请求服务器接受请求的内容,并对其进行处理。

http响应:服务器的响应包括一个状态行,改状态行有消息的协议版本和退出码组成,状态行后面跟几个表头和主体内容。请求与响应是根据http规范进行格式化得字符串,通过tcp连接进行传输。

服务器端抽象层的构建

浏览器与web服务器间的每次会话都会引起数据包的交互,如果请求的是HTML页面,则web服务器会读取内容并将其刷新到响应报文的主体中,如果URL是ASP.NET页面、则会涉及IIS模块。是一个IIS  ISAPI  插件,被称为“ISAPI扩展”。 ISAPI扩展时按照一个文件一个扩展的方式注册的动态链接库。每当有ASPX文件的请求时,就要有一个用来处理该页面的服务器端环境。若成功获取请求的状态并完全还原,变允许这个页面运行并输出期望结果。HTML中<from>标签是唯一授权能提交数据的标签。

ASP.NET组建模型

ASP.NET是NET framework中提供的关键技术,web应用程序有用户向服务器请求的各个页面组成,改服务器会处理并返回标记代码。在资源的扩展名为ASPX时,iss便将进一步的处理工作委托给ASP.NET运行时系统。 ASP.NET运行时将会对所有请求的ASPX 页面源代码转换为net framework类的实例,改实例继承于类Page。最后,运行时的一个ASP.NET是一个对象,它的组建也是一个对象。在ASP.NET页面中,可以标记为有runat属性的任何组件指定一个唯一的ID,允许我们从服务器端访问,runat属性决定一段标记是在呈现的时候已纯文本形式还是转换为一个特定的实例,要是实例,自身会负责相关标记的生成。

ASP.NET服务器

基本上有两个系列:HTML服务器控件和WEB服务器控件,命名空间是:System.Web.UI.HtmlControls和System.Web.UI.WebControls。 ASP.NET页面有控件、文本和标记构成,当源码被转换为页面类的实例后,ASP.NET不会区分文本、标记和控件,所有都是控件,在运行时ASP.NET页面不过是控件的容器。任何一个ASP.NET页面都是Page类派生类的实例,Page类是所有HTTP管线的终点,为了生存页面标记,各个系统组件逐步生成页面对象所需要的信息。

HTTP运行时环境

请求由IIS截取,获得一个身份标识,然后传递给ASP.NET ISAPI扩展,是所有ASP.NET进程的入口点,进程模型是处理请求的一系列操作所组成的序列。在ISS6中,ASP.NET ISAPI扩展负责CLR加载并启动HTTP管线。一旦进入ASP.NET  HTTP管线,便会经历多个系统和用户自定义的组件,这些组件会对请求处理,直到有效的页面类成功实例化。

ASP.NET编程模型相关推荐

  1. ASP.NET Core MVC I\/O编程模型

    1.1. I/O编程模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-bloc ...

  2. 异步编程模型--使用 IAsyncResult 对象

    先推荐阅读下面的资料: MSDN:异步编程设计模式 IBM developerworks: 使用异步 I/O 大大提高应用程序的性能 参考博文: 1.正确使用异步操作 2.Lab:体会ASP.NET异 ...

  3. Silverlight编程模型

    Silverlight支持Javascript API编程模型和托管API编程模型这两种编程模型,它们的基本作用都是用于XAML界面文件中的XAML对象,基于托管API编程的XAML应用程序是通过x: ...

  4. 16第一章 ASP.Net编程基础知识

    第一章        ASP.Net编程基础知识 第一章        ASP.Net编程基础知识 本章首先介绍用ASP.Net技术编制服务器端动态网页所需的网络和HTML标记语言方面的有关知识.然后 ...

  5. 带着镣铐的舞者(从用户体验与编程模型两方面看AJAX与B/S 技术)

    带着镣铐的舞者 从用户体验与编程模型两方面看AJAX与B/S 技术 ****************************************************************** ...

  6. CUDA刷新器:CUDA编程模型

    CUDA刷新器:CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA,CUDA刷新器,并行编程 这是CUDA更新系列的第四篇文章,它的目标是 ...

  7. C语言网络编程:TCP编程模型

    编程模型 TCP编程模型如下 TCP服务器的工作过程如下: 服务器创建一个专门的"文件描述符"来监听来自客户端的"三次握手",然后建立链接 链接建立成功后,服务 ...

  8. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Poll、Epoll模型处理长连接性能比较

    在<朴素.Select.Poll和Epoll网络编程模型实现和分析--模型比较>一文中,我们分析了各种模型在处理短连接时的能力.本文我们将讨论处理长连接时各个模型的性能.(转载请指明出于b ...

  9. 朴素、Select、Poll和Epoll网络编程模型实现和分析——模型比较

    经过之前四篇博文的介绍,可以大致清楚各种模型的编程步骤.现在我们来回顾下各种模型(转载请指明出于breaksoftware的csdn博客) 模型编程步骤对比 <朴素.Select.Poll和Ep ...

最新文章

  1. 隆重介绍!一款新型基于姿势的人像实例分割框架
  2. 你需要知道的requestAnimationFrame
  3. 企业网络推广中用户行为到底能为企业网络推广带来多少影响?
  4. PHP环境服务器搭建
  5. [php]数据结构算法(PHP描述) 半折插入排序 straight binary sort
  6. PHP 获取页面地址参数详解整理
  7. 模板vs定制 门店小程序该如何选择?
  8. Python切分文本(将文本文档切分为词列表)
  9. java通过匹配合并数据(数据预处理)
  10. Git学习总结(17)——大型分布式团队的代码版本管理
  11. MFC控件使用总结——CListCtrl
  12. 给MTL库添加求行列式值
  13. 计算机c语言等级考试PDF,计算机二级C语言等级考试题.pdf
  14. catia如何将曲面加厚变为实体_?在CATIA中快速画一个大众车标
  15. Maven常用命令 - 构建反应堆中指定模块
  16. 图解MongoChef的安装步骤
  17. java 安卓 物联网_面向物联网的Android应用开发与实践
  18. 华为鸿蒙智能家居套件价格,华为全屋智能家居方案价格
  19. 51单片机——独立按键
  20. 计算机放大电路的基础知识,集成运算放大器基础知识及示例电路

热门文章

  1. C#6.0,C#7.0新特性
  2. Oracle 数据库常用操作语句大全
  3. kafka设计与原理
  4. 让我们一起来起花名吧
  5. 制作OS X El CAPITAN安装U盘
  6. 【翻译】SQL Server索引进阶:第八级,唯一索引
  7. 会计的思考(41):会计的领悟—每一位业务骨干都是优秀的管理会计师
  8. ExtJS Model数据实体模型
  9. Linux下date命令的修改时间问题
  10. 生产性服务业的源起及内涵(制造服务业的前世今生之一)