插曲
在开始主题之前,先来统一几个概念。
实际上,关于互联网(internet,国际标准首字母是小写)、因特网(Internet,国际标准首字母是大写)和计算机网络三者的概念并没有完整统一的定义,这里给出作者本人通过查阅资料获悉的参考定义。
广义互联网(internet)
互联网:凡是能彼此通信的设备组成的网络就叫互联网
计算机网络:将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。简单来说即连接两台或多台计算机进行通信的系统。
通过二者的定义可以看出,广义上,我们可以将互联网等同于计算机网络。
可是,通常大家口中说的“互联网”更倾向于是指因特网。但因特网并不是全球唯一的互联网络。例如在欧洲,跨国的互联网络就有“欧盟网”(Euronet),“欧洲学术与研究网”(EARN),“欧洲信息网”(EIN),在美国还有“国际学术网”(BITNET),世界范围的还有“飞多网”(全球性的BBS系统)等。
因特网(Internet)
Internet是在美国早期的军用计算机网ARPANET(阿帕网)的基础上经过不断发展变化而形成的,是网络与网络之间所串连成的庞大网络,这些网络以一组标准的网络TCP/IP协议族相连,连接全世界几十亿个设备,形成逻辑上的单一巨大国际网络。它是由从地方到全球范围内几百万个私人的、学术界的、企业的和政府的网络所构成,通过电子、无线和光纤网络技术等等一系列广泛的技术联系在一起。这种将计算机网络互相联接在一起的方法可称作“网络互联”,在这基础上发展出覆盖全世界的全球性互联网络称互联网,即是互相连接一起的网络。
上面冗长的定义可以说明,狭义上,互联网就是因特网。
在不引起歧义的情况下,“互联网”一词可以根据上下文语义理解即可。
因特网提供的服务有(但不限于):
- 万维网(World Wide Web,又称环球信息网,提供信息发布、搜索、查询、娱乐、购物等服务)
- 电子邮件
- 点对点网络
- 文件共享
- IP电话
- 远程登录Telnet
万维网(WWW)
万维网(英语:World Wide Web),亦作“WWW”、“Web”,是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。
万维网并不等同互联网,万维网只是互联网所能提供的服务其中之一,是靠着互联网运行的一项服务。
万维网的核心部分是由三个标准构成的:
统一资源标识符(URI),这是一个统一的为资源定位的系统。
超文本传送协议(HTTP),它负责规定客户端和服务器怎样互相交流。
超文本标记语言(HTML),作用是定义超文本文档的结构和格式。
正文
言归正传,我们通过浏览器访问万维网中的某个网站时会从服务器得到一个超文本标记文档,然后浏览器将文档渲染后展示在显示器上,这就是我们得到的页面。页面中可以包含文本、图像、声音、FLASH动画、客户端脚本(JavaScript)和ActiveX控件及JAVA小程序(Java Applet显然已经退出舞台)等,有些页面还可以注册、登录以及显示当前用户的相关信息。
我经常看到页面中显示一些广告,可怕的是,广告的内容正是我前几天搜索过或购买过的产品。这个现象似乎来得有点夸张。
浏览器从服务器得到的超文本标记文档的后缀通常分为两大类:
- 静态页面:htm、html、shtml、xml;
- 动态页面:asp、jsp、php、perl、cgi;
在我们开始区分静态网页和动态网页之前,先明确一下二者的共同之处。首先,它们的目标都是呈现内容给用户;其次,内容都是用超文本标记语言(HTML)表示的。既然它们有着相同的使命,那为什么会有所区别呢?
静态网页
静态网页是指存放在服务器文件系统中实实在在的HTML文件。当用户在浏览器中输入页面的URL,然后回车,浏览器就会将对应的html文件下载、渲染并呈现在窗口中。早期的网站通常都是由静态页面制作的。
开发技术
通常,使用HTML或XML即可完成静态页面的制作。
特点
- 静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”;(动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中“?”后面的内容。)
- 网页内容一经发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的,也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件;
- 静态网页的内容相对稳定,因此容易被搜索引擎检索;
- 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
- 静态网页的交互性较差,在功能方面有较大的限制。
- 页面浏览速度迅速,过程无需连接数据库,开启页面速度快于动态页面。
- 减轻了服务器的负担,工作量减少,也就降低了数据库的成本。
优点
- 可以公开(即副本可以证明给任何人)。
- 托管没得任何特殊的要求。(不需要特殊的中间软件比如超文本预处理器、公共网关接口)
- 没得网络服务器或应用服务器,比如直接从CD-ROM(激光唱片-只读存储器)或USB闪存驱动器读取内容,可以通过网络浏览器直接访问。
- 网站更安全,HTML页面不会受Asp相关漏洞的影响;而且可以减少攻击,防SQL注入。数据库出错时,不影响网站正常访问。
- 不需要编译,所以速度快,节省服务器资源。
- 网址格式友好,搜索引擎容易识别。
缺点
- 内容是固定的,交互性差,内容更新维护复杂。
- 没有自动化的工具,维护大量的静态页面文件是不现实的。
- 无法充分支持用户/客户的需求(外观选择,浏览器的支持,Cookie)。
动态网页
动态网页是相对于静态网页而言的。当浏览器请求服务器的某个页面时,服务器根据当前时间、环境参数、数据库操作等动态的生成HTML页面,然后在发送给浏览器(后面的处理就跟静态网页一样了)。很明显,动态网页中的“动态”是指服务器端页面的动态生成,相反,“静态”则指页面是实实在在的、独立的文件。
开发技术
动态网页的生成技术有多中,常见的有:
- HTML+JavaScript(Node.js)
- HTML+PHP
- HTML+ASP.NET(或ASP)
- HTML+JSP
- HTML+CGI(早期的动态网页技术)
关于这几类技术细节,不在本文的描述范围。
特征
- 动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量;
- 采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;
- 动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
- 动态网页地址中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索蜘蛛不去抓取网址中“?”后面的内容,因此采用动态网页的网站在进行搜索引擎推广时需要做一定的技术处理才能适应搜索引擎的要求。
好处
- 维护方便,能实现人们需要的各种需求。
- 查询信息方便,能存储大量数据,需要时能立即查询。
不足
- 动态网站用到数据库,所以对数据库的安全和保密性要求较高,要专业技术人员提供维护才能保证网站的安全。
- 动态网站不利于搜索引擎收录。
- 动态网站制作成本较高。
伪静态
并非所有后缀为html htm的页面都是静态页面,动态页面也可以通过服务器端的技术实现采用静态页面的后缀,常见的是Apache和Nginx的Rewrite技术,也就是通常称作伪静态的页面,实际上还是动态页面,只不过是静态化了。
伪静态是相对真实静态来讲的。通常我们为了增强搜索引擎的友好面。都将文章内容生成静态页面。但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。
伪静态与静态页面的区别
从URL结构以及页面名称看,伪静态和静态页面是一样的。伪静态的页面后缀可以是html htm 或者是目录格式伪静态只是改变了URL的表现形式,实际上还是动态页面静态页面可以节省服务器资源,而伪静态严格说是增加服务器资源消耗的总结,在SEO方面,伪静态和静态页面的功能是相同的,但是伪静态本质上还是动态页面,所以消耗资源是和动态页面一样的,而且因为Rewrite服务器还需要消耗额外的资源。
误区:会动的就是动态页面
在HTML格式的页面上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、翻滚字母等,这些“动态效果”仅仅是有客户端呈现的视觉上的动态,与动态网页并不是同一个概念。
和谐统一
静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站内容的多少,如果网站功能比较简单,内容更新量不是很大,采用纯静态网页的方式会更简单,反之一般要采用动态网页技术来实现。
静态网页是网站建设的基础,静态网页和动态网页之间也并不矛盾,为了网站适应搜索引擎检索的需要,即使采用动态网站技术,也可以将网页内容转化为静态网页发布。
动态网站也可以采用静动结合的原则,适合采用动态网页的地方用动态网页,如果必要使用静态网页,则可以考虑用静态网页的方法来实现,在同一个网站上,动态网页内容和静态网页内容同时存在也是很常见的事情。