41,消息报头-实体报头
请求和响应消息可以传送一个实体。一个实体由实体报头域和实体正文组成,在大多数情况下,实体正文就是请求消息中的请求正文或者响应消息中的响应正文。但是在发送时,并不是说实体报头域和实体正文要在一起发送,例如:有些响应可以知包含实体报头域。实体就好像我们写的书信,在信中,我们可以写上标题,加上页号等,这部分就相当于实体报头域,而我们所写的书信的内容,就相当于是实体正文,前面所讲的普通报头、请求报头、响应报头我们可以看成是写在书信上的邮编、接受者、发送者等内容。
实体报头定义了关于实体正文(例如:有无实体正文)和请求所标识的资源的元信息。
常用实体报头:
42,Content-Encoding
Content-Encoding实体报头域被用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。Content-Encoding主要用于记录文档的压缩方法,下面是它的一个例子:
Content-Encoding:gzip
如果一个实体正文采用了编码方式存储,在使用之前就必须进行解码。
43,Content-Language
Content-Language:实体报头域描述了资源所用的自然语言。Content-Language允许用户遵照自身的首选语言来识别和区分实体。如果这个实体内容仅仅打算提供给丹麦的阅读者,那么就可以按照如下的方式设置这个实体报头域:
Content-Language:da
如果没有指定Content-Language报头域,那么实体内容将提供给所有语言的阅读者。
44,Content-Length
Content-Length实体报头域用于指明正文的长度,以字节方式存储的十进制数字来表示,也就是一个数字字符占一个字节,勇气对应的ASCII码存储传输。
要注意的是:这个长度仅仅是表示实体正文的长度,没有包括实体报头的长度。
45,Content-Type
Content-Type实体报头域用于指明发送给接受者的实体正文的媒体类型。例如
Content-Type: text/html; charset=ISO-8859-1
Content-Type: text/html; charset=GB2312
46,Last-Modified
Last-Modified实体报头域用于指示资源最后的修改日期时间。
47,Expires
Expires实体报头域给出响应过期的日期和时间。通常,代理服务器或浏览器会缓存一些页面,当用户再次访问这些页面时,直接从缓存中加载并显示给用户,这样缩短了响应的时间,减少了服务器的负载。为了让代理服务器或浏览器在一段时间后变更新页面,我们可以使用Expires实体报头域指定页面过期的时间。当用户又一次访问页面时,如果Expires报头域给出的日期和时间比Date普通报头域给出的日期和时间要早(或相同),那么代理服务器或浏览器就不会在使用缓存的页面,而是从服务器上请求更新的页面。不过要注意,即使页面过期了,也并不意味着服务器上的原始资源在此时间之前或之后发生了改变。
Expires实体报头域使用的日期和时间必须是RFC 1123中的日期格式,例如:
Expires: Thu, 15 Sep 2005 16:00:00 GMT
HTTP1.1 的客户端和缓存必须将其他非法的日期格式(也包括0)看作已经过期。例如,为了让浏览器不要缓存页面,我们也可以利用Expires实体报头域,设置它的值为0,如下:
response.setDateHeader(“Expires”, 0);