I've got a problem when I pass the html5 validator to my site from w3c validator. The errors are next:
Bad value Content-Script-Type for attribute http-equiv on element meta
<meta http-equiv="Content-Script-Type" content="text/javascript" >
Bad value expires for attribute http-equiv on element meta
<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT" >
Bad value pragma for attribute http-equiv on element meta
<meta http-equiv="pragma" content="no-cache" >
Bad value Cache-Control for attribute http-equiv on element meta.
<meta http-equiv="Cache-Control" content="no-cache" >
What are the correct values to meta tags to pass html5 validator?
For HTML5 you use a cache manifest file in the header.
This is an example of how to use:
http://www.w3.org/TR/html5/browsers.html#manifests
Also, you force no cache with this:
<meta http-equiv="expires" content="0">
This is a good tutorial on how to use the cache manifest file:
https://www.html5rocks.com/en/tutorials/appcache/beginner/#toc-manifest-file-creating
The accepted answer is wrong! This is a good answer.
To quote Alohci:
Putting caching instructions into meta tags is not a good idea, because although browsers may read them, proxies won't. For that reason, they are invalid and you should send caching instructions as real HTTP headers.
Addendum:
For Apache and .htaccess you could use
<ifmodule mod_expires.c>
ExpiresActive On
ExpiresDefault value or
ExpiresByType text/css "access plus 1 month"
...
</IfModule>
PHP have headers_sent() and header() function for that.
function header_no_cache () {
\header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
\header('Pragma: no-cache'); // HTTP 1.0.
\header('Expires: 0'); // Proxies.
}
Point is that caching instructions should be in header. Not in html file.