续表
网页按照表现形式可以分为静态网页和动态网页。
静态网页的内容由HTML代码编写,后缀名为.html、.htm或者.xml,可以包含文本、图像、声音、flash动画、客户端脚本和ActiveX控件等。例如,某博客页面就是一个静态网页,如图2-13所示。
图2-13 静态网页
静态网页的特点如下。
(1)任何人在任何时间打开的页面其内容不变。
(2)加载速度快,代码编写简单,但可维护性差。
(3)内容相对稳定,因此容易被搜索引擎检索到。
(4)无法连接数据库。
(5)交互性较差,在功能方面受到较大的限制。
动态网页的内容除了HTML外,还包括一些由JSP、PHP、Python等语言编写的具有特定功能的程序代码,这些代码可以使浏览器和服务器进行交互。动态网页的特点是网页显示的内容会随着时间、环境或者数据库操作结果而发生改变,如图2-14所示。
图2-14 某动态网页
动态网页的特点如下。
(1)相对于静态网页来说,页面代码虽然没有变化,但是显示的内容却可以随着时间、环境或者数据库操作结果而发生改变。
(2)以数据库技术为基础,可以大大降低网站维护的工作量。
(3)采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等。
静态网页和动态网页的区别见表2-8。
表2-8 静态网页与动态网页的区别
在Web中,会话对象用来存储特定用户会话所需的属性及配置信息。当用户在应用程序的Web页面之间跳转时,存储在会话对象中的变量不会丢失,而会在整个用户会话中一直存在。当用户请求应用程序的Web页面时,Web服务器将自动创建一个会话对象。当会话过期或被丢弃后,服务器将终止该会话。会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是cookie与session。
cookie是一个保存在客户端的简单文本文件,里面是某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端的数据。客户端向服务器端发送一个请求时,服务器端向客户端发送一个cookie,然后浏览器将cookie保存下来。
在用户具体执行时,当用户使用浏览器访问一个支持cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器;接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息,这些信息存放于HTTP响应头(Response Header)中,当客户端浏览器接收到来自服务器的响应之后,浏览器会将这些信息存放在一个统一的位置,对于Windows操作系统而言,可以从:[系统盘]:\Documents and Settings[用户名]\cookies目录中找到存储的cookie;自此,客户端再向服务器发送请求的时候,都会把相应的cookie再次发回至服务器。有了cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。通常,我们可以从很多网站的登录界面中看到“请记住我”这样的选项,如果你勾选了它之后再登录,那么在下一次访问该网站的时候就不需要进行重复而繁琐的登录动作了,而这个功能就是通过cookie实现的。
session是服务器端使用的一种记录客户端状态的机制,使用上比cookie简单一些,但增加了服务器的存储压力。与cookie保存在客户端浏览器中不同,session保存在服务器上。客户端浏览器访问服务器时,服务器会把客户端信息以某种形式记录下来,即session。客户端浏览器再次访问服务器时,只需从session中查找客户端的状态即可。例如,我们去超市购物,在自主结账处,输入会员号进行积分的模式就类似于session。
cookie和session的区别如下。
(1)cookie数据存放在客户端的浏览器上,session数据存放在服务器上。
(2)相对于cookie,session更安全。
(3)设置cookie时间可以使cookie过期,但是使用session-destory(),将销毁会话。
(4)session会在一定时间内保存在服务器上,当访问请求较多时,会增加服务器的存储压力,此时应当考虑使用cookie。
(5)单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多只能保存20个cookie,session对象对存储的数据量没有限制,可以保存更为复杂的数据类型。