关于缓存(cache)
有了初级教程的基础,相信大家已经能够做不少事情了。在本章,我们来深入一下,看看如何提高性能和网络传输效率。首先,需要介绍一下http 1.1(RFC2616)的基础知识。当然,如果你已经很熟悉了,可以跳过第一节。
一、HTTP 1.1的简要介绍
请求 响应
二、缓存(cache)
永久缓存URL 指定对URL的缓存时间 禁止对URL的缓存
三、验证(validation)和历史堆栈(History Stack)
四、HTTP头与meta元素
一、HTTP 1.1的简要介绍 [TOP]
HTTP 1.1是一个基于文本的互联网实体信息交互主流协议,这里的实体可以是WAP兼容浏览器之类的用户终端,可以是WAP网关之类的代理服务器,也可以是Java servlet之类的源服务器程序。它们之间的交互信息就是两大类:客户端对服务器端的请求(request)和服务器端对客户端的响应(response)。一次完整的交互包括一个请求和对它的响应。
所有的请求和响应都采用[RFC822]中定义的标准互联网消息格式,框架如下:
* 消息定义
* 没有或多个消息头
* CRLF(空行回车)
* 可选的消息本体
其中消息定义不分指定了发送消息的类型。请求和响应都可以包含多个消息头,用来进一步或者重新定义用户终端和服务器之间的交互。CRLF仅仅用来将信息定义和消息本体分开。
1、 请求 [TOP]
在消息定义部分可以这样定义请求: 请求类型 URL HTTP/1.1
其中请求类型可以是下面的一种:
①. OPTION:返回请求者和相应者之间可以使用的通信选项,主要用来检测服务器处理能力;
②. GET:获得以URL标示的文件内容或者程序执行结果。服务器根据文件名后缀判断服务内容,比如该URL是静态文本还是一个程序;
③. HEAD:除了不返回响应的信息本体以外,得到的是跟GET一样的信息。一般用来测试链接的有效性、可达性和近期修改;
④. POST:把消息本体中的消息发送到一个URL或者其他类似的服务器端定义行为。通常用来提交一个HTML表单或者一些数据操作活动;
⑤. PUT:把消息本体中的消息发送到一个URL,跟POST类似,但不常用;
⑥. DELETE:删除URL指定的资源;
⑦. TRACE:调用一个远程应用层请求消息回路。发出这个消息的用户终端除了收到原来的消息内容以外,还得到消息在Internet上的传送路径。
最常用的请求类型--也是我们在处理WAP应用时最关心的--是GET和POST。假设有一个WML文档,我们用UP的浏览器去浏览的话,就会向服务器发出如下GET请求:
GET www.wap86.com/index.wml HTTP/1.1
accept-charset: UTF-8
accept-language: ch
accept: text/vnd.wap.wml, */*, image/bmp, text/html
user-agent: UP.Browser/3.1-UPG1 UP.Link/3.2
host: www.wap86.net
……
其中粗体的部分是HTTP消息头,这里我们忽略了一些与我们关系不大的消息头。
accept-charset: 用户终端支持的字符集
accept-language: 用户终端目前使用的语言
accept: 用户终端可以接受的MIME文件类型
user-agent: 用户终端供应商提供的终端描述信息
host: 请求信息发送到的域名
2、 响应 [TOP]
响应的消息定义部分一般是这样的:HTTP/1.1 状态码 状态描述 在[RFC2616]中定义了近40种不同的状态码(分成5组)。其中最常见的是3个:
200 OK
401 Unauthorized
404 Not Found
继续上面那个例子,如果该URL合法的话,服务器的响应会是这样的:
HTTP/1.1 200 OK
Server: www/5.0
Date: Fri, 26 Oct 2000 12:15:23 GMT
Connection: Keep-Alive
Content-Length: 1211
Content_Type: text/vnd.wap.wml
Last-Modified: Mon, 22 Oct 2000 18:19:24 GMT
<?xml version=”1.0”>
“http://www.wapforum.org/DTD/wml_1.1.xml”>
……
其它内容
……
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124910/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10294527/viewspace-124910/