# http_cache_etag

(PECL pecl_http:0.1.0-1.5.5)

http_cache_etag — Caching by ETag

### Description

bool http_cache_etag ([ string `$etag` ] )

Attempts to cache the sent entity by its ETag, either supplied or generated by the hash algorithm specified by the INI setting http.etag.mode.

If the clients If-None-Match header matches the supplied/calculated ETag, the body is considered cached on the clients side and a 304 Not Modified status code is issued.

A log entry is written to the cache log if the INI setting http.log.cache is set and the cache attempt was successful.

> Note: This function may be used in conjunction with http_send_data(), http_send_file() and http_send_stream().

If this function is used outside the http_send_*() API, it facilitates the ob_etaghandler().

### Parameters

`etag`

  custom ETag

### Return Values

Returns `FALSE` or exits on success with 304 Not Modified if the entity is cached. See the INI setting http.force_exit for what "exits" means.

### Examples

Example#1 A http_cache_etag() example

`<?php
http_cache_etag();
http_send_data("data");
?>`

### See Also

- http_cache_last_modified()
- ob_etaghandler()
- http_match_etag()
- the HttpResponse class if you are using PHP-5.1 and above