基于HttpHandler的页面静态化
1、引言
ASP.NET是微软推出的一种Web服务器端开发技术,我们在做ASP.NET开发时通常更多的是考虑页面上实现的功能,例如:数据怎么在页面上显示,用户登录该如何实现等。但我们很少考虑在服务器端如何通过编程的方式去处理请求,例如:当客户端请求一个aspx页面时,默认情况下服务器会编译并执行这个动态页面,并将执行结果输出到客户端,这就是一个典型的“请求-响应”的过程。但如果该页涉及到大数据量的数据库查询以及较为复杂的逻辑运算,特别是在该页面并发访问人数较多的情况下,响应时间会大幅度增多,服务器压力也会增加。怎么解决这个问题?我们可以采用动态页面静态化技术解决这个问题。
2、页面静态化的概念
页面静态化即把动态页面转换成静态页面。页面静态化的优势:(1)有利于搜索引擎搜索、(2)没有丢掉动态页面维护内容的方便性、(3)性能和安全方面的提升。早期的搜索引擎并不能很好的检索如*.jsp,*.aspx等的服务器动态页面,但是对*.html等静态页面却有良好的检索效果,于是就产生了一种“动态页面静态化”的技术,在ASP.NET中就是把用户对同一个aspx页面的不同请求结果保存到不同的html文件中,在以后的对该aspx页面的请求,将调用相应html页面作为对客户端的响应,这样将大大节省服务器端处理时间,以达到快速响应客户端请求的效果。
要想实现动态页面的静态化必须先了解ASP.NETISAPI的运行机制。
2.1ASP.NET请求的处理过程如下
(1)当Http请求提交到服务器端时,IIS检查所请求的资源类型并调用ASP.NETISAPI,步骤如下:1)调用ASP.NET辅助进程(IIS6对应为w3wp.exe);2)辅助进程加载.NET运行时环境;3)ASP.NETISAPI将请求转发给辅助进程。
(2)辅助进程收到请求,通知ASP.NETISAPI它将进行处理。
(3)在辅助进程的上下文中执行处理过程,步骤如下:1)在.NET运行时环境中执行;2)经HttpModule容器和HttpHandler容器处理。
(4)处理完毕,通知ASP.NETISAPI完成。在这个处理过程中我们重点关注的是如何通过HttpModule和HttpHandler来处理Http请求。
- 2025年中科院分区表已公布!Scientific Reports降至三区
- 官方认定!CSSCI南大核心首批191家“青年学者友好期刊名单”
- 2023JCR影响因子正式公布!
- 国内核心期刊分级情况概览及说明!本篇适用人群:需要发南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的学者
- 我用了一个很复杂的图,帮你们解释下“23版最新北大核心目录有效期问题”。
- 重磅!CSSCI来源期刊(2023-2024版)最新期刊目录看点分析!全网首发!
- CSSCI官方早就公布了最新南核目录,有心的人已经拿到并且投入使用!附南核目录新增期刊!
- 北大核心期刊目录换届,我们应该熟知的10个知识点。
- 注意,最新期刊论文格式标准已发布,论文写作规则发生重大变化!文字版GB/T 7713.2—2022 学术论文编写规则
- 盘点那些评职称超管用的资源,1,3和5已经“绝种”了