According to RFC 2616, generation of entity tags by HTTP servers is optional. However, I couldn’t find what a conditionally compliant HTTP server should do if it receives an If-Match (or If-None-Match) header. Should it just ignore those headers or should it respond with 412 Precondition Failed?
UPD: Just to clarify, I’m assuming that the server in question does not support entity tags.
While the RFC2616 is implicit on the matter, you can deduce from, say 14.26 (If-None-Match), that if the server cannot match the resource with the tag, then it should go ahead with request). The 412 code, based upon my understanding of RFC2616 is intended for requests which modify state (e.g. PUT, POST, DELETE).
So, in essence, if the tag doesn’t match (and when it’s absent on server side is only one of many possible scenarios), then the server should go ahead with the request.