asp.net之动态页面和静态页面的区别

asp.net之动态页面和静态页面的区别

  当我开始接触web开发的时候,首先学到的是html、css、js这一类网页语言,通过布局可以搭建出一个静态网站,效果也跟我们上网时经常看到的一些网站一样了。于是都感觉很有成就感了。

  可是什么又是动态语言呢?在还没有学习这些内容时,我一直没搞清楚动态和静态的区别,包括前辈们说的动态网站和静态网站,包括他们和构建asp.net网站之间的关系。通过学习之后,做出一些个人的总结。

  1.静态页面

  特点:静态页面或者说静态网页,没有后台数据库,没有后台程序,是直接存在于服务器硬盘上的,不需要经过服务器编译就能直接显示,通常是以.html,.htm,.shtml结尾

  URL请求:浏览器通过URL向IIS发出请求,IIS根据后缀名判断是动态页面还是静态页面,如果是静态页面,则直接从硬盘读取并发回浏览器再做显示。如果是动态页面则进入asp.net处理机制,最后将处理完成的页面发回到浏览器。

  优点:

                a.速度方面,访问更快。它不用请求数据库,不用做程序编译处理,因此也减少了系统的消耗;

                b.网站优化方面,静态网页可以提高搜索引擎对客户信息的存储和网站的排名,因此更容易被搜索引擎发现,有利于搜索排名的提高。

                c.安全性方面,静态网页不用像动态网页那样可以随时动态写入数据能够减少不良代码的攻击提高了网站的安全性。

                d.稳定性方面,不会因为数据库或程序的错误影响到网站正常运行或导致数据丢失。

  缺点:

      a.不利于维护更新,如果需要修改数据,必须打开这个页面在上面做修改,因此维护工作更加繁琐,交互性也变的很差。

       b.系统容量方面容易占据较大空间,因为它是实实在在存在于服务器的,如果页面过多则会占据的空间也就更多。

     c.实现功能少。由于缺少了与数据库的关联,在使用功能方面就显得非常弱势了。

  应用:数据量小且不用经常更新的展示型网站更加适合用静态页面搭建

 

  2.动态页面

  特点:动态页面则是在静态页面的基础上加以提高,有了后台数据库和编程语言的支持,在功能性,交互性上有了大大的提高。动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页。它需要经过编译才能运行,通常以.asp,.asp.net,.php,.jsp等常见的形式出现。

    优点:a.根据用户实时请求返回用户所需页面,交互性更强。

     b.动态网页以数据库技术为基础,可以大大降低网站维护的工作量。

     c.有了数据库的支持,网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等。

  缺点:a.由于动态页面的生成是采用数据库的内容,所以网页内容主题的永恒性不能保证。这样造成了搜索引擎的阅读困难,即搜索引擎抓不住一个永恒的主题,因此不能输入到搜索引擎中的缓存( cache )中。

     b.动态网址里往往包含 “ ? ” 和很多参数,这让目前技术条件下的搜索引擎在判断和识别造成了很大的困难。

     c.动态网页的实时写入对安全性放面的隐患更多。

转载于:https://www.cnblogs.com/zizo/p/3538245.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GeoPoint与LocationData

生成GeoPoint: new GeoPoint((int)(locData.latitude* 1e6), (int)(locData.longitude* 1e6)) Done!转载于:https://www.cnblogs.com/xingyyy/p/3538983.html

原型对象prototype和原型属性[[Prototype]]

构造器:可以被 new 运算符调用, Boolean,Number,String,Date,RegExp,Error,Function,Array,Object 都是构造器,他们有各自的实现方式。 比如:var snew String("test") s的 [[Prototype]] 内部属性设定为标准内置的字符串原型对象&a…

(转) PowerDesigner中Table视图同时显示Code和Name

PowerDesigner中Table视图同时显示Code和Name,像下图这样的效果: 实现方法:Tools-Display Preference 转载于:https://www.cnblogs.com/wallis0922/p/3548402.html

Linux下部署Hadoop伪分布模式

Hadoop版本为1.2.1 Distribution为Fedora19并使用hadoop账号安装 第一步:配置ssh本地登录证书(虽然为伪分布模式,Hadoop依然会使用SSH进行通信) [hadooppromote ~]$ which ssh /usr/bin/ssh [hadooppromote ~]$ which ssh-keygen …

Fedora-19安装texlive2013并配置中文

参考博文: http://blog.csdn.net/longerzone/article/details/8129124 之前通过yum install安装了texlive,不过在使用过程中老是报错,后来通过下载完整iso安装成功,并成功配置了中文(真是一个折腾啊) 现将…

【Java】RuleSource约束常用方法整理

1-常用约束规则RuleSource的设置方法例如:addRules(new Rules(ProgramFeeItem.class){protected void initRules() {add("rateClass", all(new Constraint[] { required() })); //required表示,不可为空add("remark", rules.maxLen…

C语言编程基础 打印图形

C语言中用循环可以打印出各种图形1 直角三角形(靠右直立)&#xff1a;部分代码int i,j;for (i0; i<6; i) {for (j6;j>i ;j-- ) {printf("");}for (j0; j<i; j) {printf("*");}printf("\n");}2.等腰三角形&#xff08;直立&#xff09;部…

PHP的ISAPI和FastCGI比较

1、CGI&#xff08;通用网关接口/Common Gateway Interface&#xff09;一般是可执行程序&#xff0c;例如EXE文件&#xff0c;和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样&#xff0c;当用 户请求数量非常多时&#xff0c;会大量占用系统…

辨析*P++,*(p++),*(++p),++(*p),*(P--),*(--P)

1&#xff0c;*p由于和*同等优先级&#xff0c;结合方向为自右向左&#xff0c;因此它等价与*&#xff08;p&#xff09;。先引用p的值&#xff0c;实现*p的运算&#xff0c;然后再使p自增1。注意 其中为什么是先执行*p然后再执行*p&#xff0c;不应该是先执行括号里的p再执行*…

chrome密码管理

chrome://settings/passwords ------------------------------- [系统盘]:\Documents and Settings\[用户名]\Local Settings\Application Data\Google\Chrome\User Data\Default\Login Data &#xff08;这个路径是 Win XP 系统&#xff09; 你可以用 SQLite Database Browse…

牛客网刷题错题记录

目录 Java 1.静态内部类 2.关于String&#xff0c;StringBuilder以及StringBuffer 3.java语言特性 4.非抽象类实现接口的问题 5.互斥锁 6. Socket 通信编程 7.类的初始化顺序 8.变量的存储区 9.jvm线程共享问题 10.java内存回收问题 11.关于java concurrent包四个类…

android Intent和IntentFilter

android的应用程序包含三种重要的组件&#xff1a;Activity、Service、BroadcastReceiver&#xff0c;应用程序采用一致的方式来启动他们——都是依靠Intent来进行启动。Intent就封装了程序想要启动的程序意图&#xff0c;不仅如此&#xff0c;Intent还可用于与被启动组件交换信…

冒泡排序的双重循环理解

主要说一下冒泡排序的一些关键地方的个人理解&#xff0c;比如算法思想&#xff0c;两个循环的作用意义&#xff0c;中间循环变量范围的确定等。 原理&#xff1a;比较两个相邻的元素&#xff0c;将值大的元素交换至右端。思路&#xff1a;依次比较相邻的两个数&#xff0c;将小…

全程软件测试之测试需求分析与计划(2)

2.3 测试工作量估算 在确定了测试需求、明确了测试范围之后&#xff0c;就需要明确测试任务&#xff0c;估算测试工作量。基于质量需求和测试的工作量、测试环境、产品发布的设想时间等要求&#xff0c;就可以确定测试进度和所需的测试资源&#xff0c;或者基于现有的测试资源…

C语言和Java 在用数组作为参数时有点不一样

C语言和Java 在用数组作为参数时有点不一样。 C中 void jh(int n[2]) {/注意这里参数是写了大小 int temp; temp n[0]; n[0] n[1]; n[1] temp; } int main() { int i; int num[2] {7, 8}; jh(num); } Java中 由于C和Java中定义数组形式稍微有点不一样&#xff0c;所以这里…

[CLR via C#]16. 数组

数组是允许将多个数据项当作一个集合来处理的机制。CLR支持一维数组、多维数组和交错数据(即由数组构成的数组)。所有数组类型都隐式地从System.Array抽象类派生&#xff0c;后者又派生自System.Object。这意味着数组始终是引用类型&#xff0c;是在托管堆上分配的。在你应用程…

Java中String类 compareTo()方法比较字符串详解

中心&#xff1a;String 是字符串,它的比较用compareTo方法,它从第一位开始比较, 如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型1.当两个比较的字符串是英文且长度不等时&#xff0c;1&#xff09;长度短的与长度长的字符一样&#xff0c;则返回的结果…

UIPopoverController简介

1, performSegueWithIdentifier:sender&#xff1a;跳转或弹出控制器 Identifier为popoverSegue时候&#xff0c;Sender仅限于UIBarbuttonItem与View&#xff1b;//。。。。。。。。。 转载于:https://www.cnblogs.com/senlinwuran/p/UIPopoverController.html

异常是catch还是throws的简单原则

1 .如果你完全能处理这个异常&#xff0c;那么就catch掉 public void test() {try {} catch (Exception e) {}}2. 如果你完全不能处理这个异常&#xff0c;那么就throws掉 public void test() throws Exception {}3. 如果你想对异常做一点点处理&#xff0c;但又不能完全处理&a…

在Windows 7 x64 上编译libsvn

这几天由于工作需要&#xff0c;需要Windows上Python 2.7 x64对应的svn模块。Win32版本可以从这个页面直接下载 http://sourceforge.net/projects/win32svnx64的无奈只有自己编译了。在这个过程中还是费了一些力气&#xff0c;在Linux上可以直接make&#xff0c;在Windows使用V…