This article mainly shares a tips on returning a 304 php static file. For more information, see
This article mainly shares a tips on returning a 304 php static file. For more information, see
Sometimes some static files (slices) are output by php, and the requests are all 200. Every time a static file is sent to the server, it is a waste of resources. How can we cache images in the browser? We need to output 304 in php.
We can use HTTP_IF_MODIFIED_SINCE and etag in php to do this. Etag does not have a clearly defined format. We can use the md5 value of the file modification time. The Code is as follows:
The Code is as follows:
Private function _ addEtag ($ file ){
$ Last_modified_time = filemtime ($ file );
$ Etag = md5_file ($ file );
// Always send headers
Header ("Last-Modified:". gmdate ("D, d m y h: I: s", $ last_modified_time). "GMT ");
Header ("Etag: $ etag ");
// Exit if not modified
If (@ strtotime ($ _ SERVER ['HTTP _ IF_MODIFIED_SINCE ']) = $ last_modified_time |
@ Trim ($ _ SERVER ['HTTP _ IF_NONE_MATCH ']) = $ etag ){
Header ("HTTP/1.1 304 Not Modified ");
Exit;
}
}
In the code, you can call it before the static file (slice) is output.