HTTP消息头字段深入介绍(3)
三、HTTP响应消息头字段
1. Accept-Ranges
这个字段说明Web服务器是否支持Range(是否支持断点续传功能),如果支持,则返回Accept-Ranges: bytes,如果不支持,则返回Accept-Ranges: none.
2. Content-Range
指定了返回的Web资源的字节范围。这个字段值的格式是:
开始字节位置—结束字节位置/Web资源的总字节数
下面是一个使用Content-Range的例子:
Content-Range:1000-3000/5000
测试
在HTTP模拟器中连接服务器files.cnblogs.com,并输入如下的HTTP请求消息:
|
返回的响应消息头如图2所示:
从上图可以看出,服务器files.cnblogs.com支持断点继传功能。而且还可以验证Content-Length的值是当前会话传过来的字节数,并不是Web资源的总的字节数。而Content-Range字段值中"/"后面的数才是Web资源总的字节数。
3. Location
这个字段指定了上哪个新地址获得新的Web资源。当Web资源更换URL后,而一些老用户不能及时得知这个新的URL;因此,在老用户访问原来的URL时,使用Location将这个新的URL返回给客户端。这个地址转换对用户来说是完全透明。
二、HTTP请求消息头字段
1. Host
Host字段用于指定客户端所访问的资源所在的主机名和端口号。如果端口号等于连接服务器时所使用的端口号,则端口号可以省略。下面是一个使用Host字段的一个例子:
|
这个字段是必须的,如果HTTP请求不包含这个字段,服务器将返回400(Bad Request)响应状态。
2. Accept
Accept字段头确定客户端可以接收的媒体类型。一般的格式是"*/*"或"类型/"子类型".这个子段头可以传递多个媒体类型,中间用","隔开。如下面是一个Accept的例子:
|
如果请求头使用上述的Accept字段值,则服务器端在动态生成网页的IMG头时将首先包含gif格式的图像,如果gif图象不存在,则包含jpg格式的图象。
3. User-Agent
这个字段头用于指定客户端是用什么访问的服务器,如果是IE6浏览器,并且本机安装了。net 2.0,则User-Agent会有如下的值:
|
服务器可以通过这个字段检查客户机的浏览器版本,并根据不同的版本来确定向客户端发送的数据。
4. Range
Range字段头通过服务器只传输一部分Web资源。这个字段头可以用来实现断点续传功能。有很多下载工具就是通过这个字段头进行断点续传的。Range字段可以通过三种格式设置要传输的字节范围:
(1)Range: bytes=1000-2000
传输范围从1000到2000字节。
(2)Range: bytes=1000-
传输Web资源中第1000个字节以后的所有内容。
(3)Range bytes=1000
传输最后1000个字节。