HTTP响应头

与geoserver集成的geoWebcache使用存储在响应头中的特殊信息。这些头可以直接调用 GeoWebCache endpoint 或与 direct WMS integration .

自定义响应头

geoWebcache在服务tile请求时返回标准和自定义HTTP响应头。这有助于调试过程以及遵循HTTP 1.1传输控制机制。

响应头可以通过诸如 cURL .

例子

备注

对于下面的所有curl命令,请确保替换 >/dev/null 具有 >nul 如果您在Windows上运行。

这是一个使用curl的请求和响应示例:

curl -v "http://localhost:8080/geoserver/gwc/service/wms?LAYERS=sde%3Abmworld&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A4326&BBOX=-180,-38,-52,90&WIDTH=256&HEIGHT=256&tiled=true" > /dev/null
< HTTP/1.1 200 OK
< geowebcache-tile-index: [0, 1, 2]
< geowebcache-cache-result: HIT
< geowebcache-tile-index: [0, 1, 2]
< geowebcache-tile-bounds: -180.0,-38.0,-52.0,90.0
< geowebcache-gridset: GlobalCRS84Pixel
< geowebcache-crs: EPSG:4326
< Content-Type: image/png
< Content-Length: 102860
< Server: Jetty(6.1.8)

从中可以了解到在缓存中找到了磁贴。 (HIT ,请求的图块来自名为 GlobalCRS84Pixel 并且有一个 EPSG:4326 .

自定义响应头列表

下面是自定义响应头的完整列表。每当geoWebcache为tile请求提供服务时,它将在HTTP响应上写入以下部分或全部自定义头。

响应报头

描述

geowebcache-cache-result

显示是否使用了geoWebcache wms。选项包括:

  • HIT :在缓存中找到请求的磁贴

  • MISS :在缓存中找不到磁贴,但从层的数据源获取。

  • WMS :请求直接代理到原始WMS(例如,对于GetFeatureInfo请求)

  • OTHER :响应是默认的白色/透明磁贴或发生错误

geowebcache-tile-index

包含在相应网格空间中返回的瓦片图像的X、Y、Z顺序中的三维瓦片索引(例如 [1, 0, 0]

geowebcache-tile-bounds

返回的瓦片在相应坐标参考系中的边界(例如 -180,-90,0,90

geowebcache-gridset

图块所属网格集的名称(请参见 网格集 更多信息)

geowebcache-crs

匹配网格集的坐标参考系统代码(例如 EPSG:900913EPSG:4326 等)。

上次修改时间和修改时间

行为良好的HTTP 1.1客户端和服务器应用程序可以利用 Last-ModifiedIf-Modified-Since HTTP控制机制,以了解本地缓存内容何时是最新的,从而消除了再次下载相同内容的需要。这可以节省大量的带宽。(见HTTP 1.1 RFC 2616 ,第14.29和14.25节,了解有关这些机制的更多信息。)

geoWebCache将写入 Last-Modified HTTP响应头在服务一个瓦片图像时。日期写为RFC-1123 HTTP-Date ::

Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT

连接到geoWebcache的客户端可以使用 If-Modified-Since 请求头。如果在 Last-Modified 响应头,geoWebcache将返回 304 指示资源可用且未修改的状态代码。

例子

对特定磁贴的查询返回 Last-Modified 响应头:

curl -v "http://localhost:8080/geoserver/gwc/service/wms?LAYERS=img%20states&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-135,45,-90,90&WIDTH=256&HEIGHT=256" >/dev/null
> Host: localhost:8080
> Accept: */*
>
< HTTP/1.1 200 OK
...
< Last-Modified: Wed, 25 Jul 2012 00:42:00 GMT
< Content-Type: image/png
< Content-Length: 31192

此请求具有 If-Modified-Since 标题设置为返回内容后一秒钟 Last-Modified

curl --header "If-Modified-Since: Wed, 25 Jul 2012 00:42:01 GMT" -v "http://localhost:8080/geoserver/gwc/service/wms?LAYERS=img%20states&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-135,45,-90,90&WIDTH=256&HEIGHT=256" >/dev/null
> Host: localhost:8080
> Accept: */*
> If-Modified-Since: Wed, 25 Jul 2012 00:42:01 GMT
>
< HTTP/1.1 304 Not Modified
< Last-Modified: Wed, 25 Jul 2012 00:42:00 GMT
< Content-Type: image/png
< Content-Length: 31192

响应代码为 304 .由于该文件自请求中指定的时间以来未被修改,因此实际上没有传输任何内容。客户被告知其瓦片副本是最新的。

但是,如果要设置 If-Modified-Since 报头到 之前 储存的时间 Last-Modified ,您将收到 200 将下载状态代码和磁贴。

此示例设置 If-Modified-Since 在返回前一秒 Last-Modified

curl --header "If-Modified-Since: Wed, 25 Jul 2012 00:41:59 GMT" -v "http://localhost:8080/geoserver/gwc/service/wms?LAYERS=img%20states&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A4326&BBOX=-135,45,-90,90&WIDTH=256&HEIGHT=256" >/dev/null
> Host: localhost:8080
> Accept: */*
> If-Modified-Since: Wed, 25 Jul 2012 00:41:59 GMT
>
< HTTP/1.1 200 OK
...
< Last-Modified: Wed, 25 Jul 2012 00:42:00 GMT
< Content-Type: image/png
< Content-Length: 31192