.aspx(或.asp)文件与.html(.htm)文件的区别与联系
由于都是用于描述网页文档的文件,自学asp.net起就对两者之间的关系很好奇
主要的区别在于,当用户请求页面时,它们在服务器的端的处理不同
下图解释客户端请求页面时,服务器端的处理流程:
.html文件
Ø .html文件是基于HTML的静态网页,它的内容是固定不变的。其页面内容使用的仅仅是标准的HTML代码,最多再加上流行的gif、flash等格式的动态图片,还有产生动态的字幕等动画效果。
Ø 当客户机通过IE浏览器向Web服务器请求提供网页内容时,服务器仅仅是将已经设计好的静态HTML文档传送给用户浏览器。
.aspx文件
.aspx是ASP.NET 页面的扩展名。它无非是在静态HTML网页里面嵌入了动态的指令(这些动态指令是由各种脚本语言编写的,是由IIS服务器上的脚本引擎来执行的)而已。如果浏览器请求某张 ASP.NET 页面,那么在把结果发回浏览器之前,服务器首先会处理页面中的可执行代码(即,脚本语言代码 )。
也就是说,一个asp网页主要包含两个部分:
⑴ HTML静态网页要素:由IE浏览器解释执行
⑵ asp脚本命令:由IIS脚本引擎解释执行
对比1:
我们分别在html页和aspx页插入脚本语言,对比运行效果
Html测试:
Aspx测试:
说明:
静态HTML语言的要素定义的是数据如何显示,而不能如何动态生成数据,所以单纯使用HTML制作的网页就是静态的。
对比2:
在浏览器端对应的页面,右击—>查看源码(下面称客户端源码),我们对比客户端源码与服务器端程序员编写的源码(下面称服务器端源码)是否一致
Html测试:
Aspx测试:
说明:
Web服务器并未对静态的html页做任何处理就直接发送给所请求的浏览器,然后由浏览器端的解释器进行内容解释并显示结果。其实,对于静态网站(由静态的HTML网页构成的网站)而言,Web服务器确实不是必需的。在这里Web服务器不过充当了一个静态网页的组织者的角色而已。
总结:
1. 尽管asp网页和静态网页一样都是文本文件,但是IIS只有看到后缀名为asp的文件才会认为是asp动态网页,才会交给脚本引擎执行。
2. 可以看到静态网页可以以asp为扩展名,但不赞成这样,因为扩展名一改,其后台的执行机制就会发生改变,会导致服务器性能下降。
3. IIS发现是以aspx(或asp)为扩展名的网页就会交给脚本引擎去识别和执行。脚本引擎逐行判断网页代码是动态的还是静态的。如果是静态的就直接反馈给IE浏览器;如果是动态的aspx(或asp)代码则按照要求生成结果,并将结果插入到网页中的相关位置上,最后反馈给IE浏览器。
4. asp中包含一个asp.dll文件,默认安装在系统目录winnt\system32\inetsrv\下。
5. 该文件是一个动态链接库,其作用就是对后缀名为asp的网页文件进行分析,判断其中是否有asp动态脚本代码。如果有则将代码送往相应的脚本引擎执行;如果是静态的HTML代码,则直接反馈给IE浏览器。
6. 在一般情况下不需要,因为IIS中已经内嵌有VBScript和JavaScript的脚本引擎。如果需要开发其他类型的脚本命令的网页,就需要安装相应的脚本引擎
.aspx(或.asp)文件与.html(.htm)文件的区别与联系的更多相关文章
- [转载]webarchive文件转换成htm文件
原文地址:webarchive文件转换成htm文件作者:xhbaxf Mac OS X系统带有文件转换功能,可以把webarchive文件变成html文件.方法是: Step 1: 建立一个文件夹 ...
- webarchive文件转换成htm文…
原文地址:webarchive文件转换成htm文件作者:xhbaxf Mac OS X系统带有文件转换功能,可以把webarchive文件变成html文件.方法是: Step 1: 建立一个文件夹 ...
- asp微信支付代码证书文件post_url.aspx和post_url.aspx.cs源码下载
很多朋友在网上找的asp支付代码中都没有这两个证书文件,只能是用别人的,但是如果别人把他的网站这个文件删了,你的支付也就不能用了,今天我就把大家需要的这两个asp微信支付代码证书文件post_url. ...
- asp.net应用程序脱机app_offline.htm文件
This application is currently offline. To enable the application, remove the app_offline.htm file fr ...
- asp.net使用include包含文件
么?用asp.net使用include包含文件?……有必要吗?使用“用户控件”不是更好吗? 当然,绝大多数情况下,用户控件都能解决问题.但若要在用户控件中需包含其他公用块,即使用用户控件嵌套,老是出问 ...
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...
- ASP.NET中Global.asax 文件是什么?
Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...
- 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法
-----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...
- ASP.NET应用程序的文件类型及文件夹列表
文件类型: 1. *.aspx文件:这类文件是ASP.NET Web页面,它包括用户接口和隐藏代码. 2. *.ascx文件:这类文件是用户控件.用户控件同Web页面非常相似,但用户不能直接访问用户控 ...
- 【转载】ASP.NET工具类:文件夹目录Directory操作工具类
在ASP.NET开发网站的过程中,有时候会涉及到文件夹相关操作,如判断文件夹目录是否存在.删除文件夹目录.创建文件.删除文件.复制文件夹等等.这一批有关文件目录的操作可以通过Directory类.Fi ...
随机推荐
- Java虚拟机四:垃圾回收算法与垃圾收集器
在Java运行时的几个数据区域中,程序计数器,虚拟机栈,本地方法栈3个区域随着线程而生,随线程而灭,因此这几个区域的内存分配和回收具有确定性,不需要过多考虑垃圾回收问题,因为方法结束或者线程结束时,内 ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- pip安装报错解决
使用pip安装docker-compose时报 unsupported operand type(s) for -=: 'Retry' and 'int' 错误,经过一番google后,发现使用升级s ...
- Mybatis源码分析之参数处理
Mybatis对参数的处理是值得推敲的,不然在使用的过程中对发生的一系列错误直接懵逼了. 以前遇到参数绑定相关的错误我就是直接给加@param注解,也稀里糊涂地解决了,但是后来遇到了一些问题推翻了我的 ...
- uoj22 【UR #1】外星人
link 题意: 给一个长为n的序列a[],现在有一个初始值m,问一个1~n的排列p[],满足将m对a[p[i]]顺次取模后得到的值最大,输出最大值和方案数. $n,m\leq 5\times 10^ ...
- AOP 面向切面 记录请求接口的日志
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点, ...
- 检测使用内存memory_get_usage,执行时间microtime
最近经常用一些扩展,适当比较所占内存,还有一些扩展执行时间长,检测一下每步的执行时间,可以加以修正调整一下源码 查看运行时间 microtime() #返回当前 Unix 时间戳和微秒数. echo ...
- python3.5: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory
python3.5安装报错 python3.5: error while loading shared libraries: libpython3.5m.so.1.0: cannot open sha ...
- PHPredis长连接pconnect
1. 当使用pconnect时,连接会被重用,连接的生命周期是fpm进程的生命周期,而非一次php的执行. 疑惑1: fpm进程的生命周期是指 当前那个还是指所有: php-fpm通常是1个ma ...
- [转]Android Studio常用快捷键
(会持续更新)这边讲的常用快捷键是指做完Keymap到Eclipse后的,不是纯Android Studio的,这边主要讲下比较常用的一些快捷键: Ctrl+G / Ctrl+Alt+Shift+G: ...