WAP编程(性能篇) |
| 作者:不详 来源:转载 发布时间:2006-4-26 1:10:30 |
|
概述 关于缓存(cache) 目录 一、HTTP 1.1的简要介绍 一、HTTP 1.1的简要介绍 HTTP 1.1是一个基于文本的互联网实体信息交互主流协议,这里的实体可以是WAP兼容浏览器之类的用户终端,可以是WAP网关之类的代理服务器,也可以是Java servlet之类的源服务器程序。它们之间的交互信息就是两大类:客户端对服务器端的请求(request)和服务器端对客户端的响应(response)。一次完整的交互包括一个请求和对它的响应。 所有的请求和响应都采用[RFC822]中定义的标准互联网消息格式,框架如下: 1、 请求 在消息定义部分可以这样定义请求: 请求类型 URL HTTP/1.1 2、 响应 响应的消息定义部分一般是这样的:HTTP/1.1 状态码 状态描述 在[RFC2616]中定义了近40种不同的状态码(分成5组)。其中最常见的是3个: 继续上面那个例子,如果该URL合法的话,服务器的响应会是这样的: <?xml version=”1.0”> 其它内容 这个响应信息里包括了响应的数字代码和文本描述,然后是一组消息头。在一个换行符以后就是消息本体,在这里,消息本体就是www.wap86.net/index.wml的源代码。 当用户终端接收到响应以后,会对其状态信息和消息头进行解码,然后决定对响应做出什么样的动作。如果收到OK响应,一般会把消息本体里的内容显示在屏幕上。对于桌面终端,通常是HTML,对于WAP浏览器,则是WML。 HTTP是一种很罗嗦的协议。即使是简单没有任何数据的请求和响应都要产生数百字节的消息。WAP通过WAP网关来解决这个问题。WAP网关一个很重要的功能就是把所有的HTTP1.1消息转换成无线任务协议(Wireless Session Protocol, WSP)的消息格式。这种格式是压缩的二进制协议,兼容HTTP1.1。它能解析所有的请求和响应消息,并转换成最精简的BIT序列。 到这里我们已经介绍了HTTP1.1的主要内容。当然HTTP1.1还有很多复杂的内容,但是在这里并不打算多讲,如果你有兴趣,可以去相关网站查找它的资料。作者只想大家知道一点:用户终端和服务器之间还有比GET和POST请求更多的互动消息,它们一样有请求和响应消息头,并且可以包含一些信号来影响WAP应用程序的执行和性能。这正是提高WAP运行效率的秘密所在。 二、缓存(Caching) 根据[RFC2616]的定义,缓存是:"程序中响应消息的本地储存区以及控制这些消息储存、重新获取和删除的子系统。缓存保存可以缓存的响应消息以便降低将来的响应时间和网络带宽消耗,同样也适用于请求消息。" 由于WAP信道带宽的限制,我们在编写WAP应用的时候都希望最大限度地减少消息的传送量。要做到这一点,就要尽量地使用缓存,经常地从缓存中获得以前的消息。幸运的是目前大多数WAP设备都有一定级别的缓存,在默认情况下,会尝试最大化的缓存。几乎所有指向URL的响应都会被缓存下来。 当WAP用户终端缓存一个响应的时候,会保存几乎所有的信息:URL、响应文本、消息头以及其他可以验证响应的内容(参看下一节"验证和历史堆栈")。每个被缓存的项目都可以根据它的URL组成部分(域名、路径、协议、参数、端口等等)唯一的识别。 有两种HTTP消息头可以让你控制WML的DECK缓存,对我们最重要的是Cache-Control消息头。它能够直接通过请求/响应链来控制所有的缓存实体。所有的缓存机制都必须遵 |
| [] [返回上一页] [打 印] |
|
文章评论 |
