我有一些代码要测试以查看其是否正常运行。
由于标头工作正常,如何测试是否已修改?$headers = getallheaders();
$time = Carbon::createFromTimestamp(filemtime($location), 'Europe/Amsterdam');
$md = md5($time->timestamp);
if(isset($headers['If-Modified-Since'])) {
$carbon = Carbon::createFromFormat('D, d M Y H:i:s \G\M\T', $headers['If-Modified-Since'], 'Etc/GMT+0');
if($carbon->gt($time)) {
header('HTTP/1.1 304 Not Modified');
exit;
}
}
if(isset($headers['If-None-Match']) && !Request::isRefresh() && !Request::isPost() && !Request::isAjax()) {
$trim = trim($headers['If-None-Match']);
if(($trim == "\"$md\"" || $trim == "$md" || $trim == "'$md'")) {
header('HTTP/1.1 304 Not Modified');
exit;
}
}
$fp = fopen($location, 'rb');
expireHeader();
header("Etag: $md");
header("Content-Type: ".getMimeType($location));
header("Content-Length: " . filesize($location));
fpassthru($fp);
exit;
答案 0 :(得分:0)
通过在浏览器中使用XMLHttpRequest对象并添加自己的标头,您可以测试响应是否正常工作。
xmlhttp=new XMLHttpRequest();
xmlhttp.addEventListener('load', function() {
console.log(this.status);
});
xmlhttp.open("get", location.href);
xmlhttp.setRequestHeader("If-Modified-Since", "Wed, 16 Mar 2019 13:00:00 GMT");
xmlhttp.send();
通过修改要测试的文件的将来日期或过去的日期,您将收到响应200(表明文件自给定日期以来已被修改)或304未修改的响应。
您当然可以编写单元测试,但出于实用性考虑并快速检查响应是否是您需要的,这样可以正常工作。