Slim Framework 2 - 未使用 etag() 获取 HTTP 304 代码
Slim Framework 2 - Not getting HTTP 304 code with etag()
我正在使用 slim framework 2 etag()
来获取缓存数据,一切正常其余客户端,但当数据来自缓存
时,它应该是HTTP 304
below is my slim api:
$app->get('/getNew', function () use ($app){
$app->etag('uniqueEtag12');
echo "I am updated one";
});
我不知道为什么每次我在其余客户端中收到 200 OK
响应代码,因为我在响应中获取缓存数据,下面是我的其余客户端响应快照
为什么这个状态码总是200 OK
为什么我收不到状态码304
请帮帮我
etag()
方法做了两件事:
- 将
ETag
header 添加到响应中
- 如果客户端发送值为
uniqueEtag12
的 If-None-Match
header,则发送 304 状态响应
因此,我认为您的请求不包含 If-None-Match
header。
示例代码:
index.php:
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello', function () use ($app) {
$app->etag('1234');
echo "Hello world on " . date("Y-m-d H:i:s");
});
$app->run();
使用 curl 测试。
没有If-None-Match
header:
$ curl -i http://localhost:8888/hello
HTTP/1.1 200 OK
Host: localhost:8888
Connection: close
X-Powered-By: PHP/7.0.15
Content-type: text/html;charset=UTF-8
Etag: "1234"
Hello world on 2017-05-04 07:12:40
有 If-None-Match
header:
$ curl -i http://localhost:8888/hello -H 'If-None-Match: "1234"'
HTTP/1.1 304 Not Modified
Host: localhost:8888
Connection: close
X-Powered-By: PHP/7.0.15
Etag: "1234"
我正在使用 slim framework 2 etag()
来获取缓存数据,一切正常其余客户端,但当数据来自缓存
HTTP 304
below is my slim api:
$app->get('/getNew', function () use ($app){
$app->etag('uniqueEtag12');
echo "I am updated one";
});
我不知道为什么每次我在其余客户端中收到 200 OK
响应代码,因为我在响应中获取缓存数据,下面是我的其余客户端响应快照
为什么这个状态码总是200 OK
为什么我收不到状态码304
请帮帮我
etag()
方法做了两件事:
- 将
ETag
header 添加到响应中 - 如果客户端发送值为
uniqueEtag12
的
If-None-Match
header,则发送 304 状态响应
因此,我认为您的请求不包含 If-None-Match
header。
示例代码:
index.php:
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello', function () use ($app) {
$app->etag('1234');
echo "Hello world on " . date("Y-m-d H:i:s");
});
$app->run();
使用 curl 测试。
没有If-None-Match
header:
$ curl -i http://localhost:8888/hello
HTTP/1.1 200 OK
Host: localhost:8888
Connection: close
X-Powered-By: PHP/7.0.15
Content-type: text/html;charset=UTF-8
Etag: "1234"
Hello world on 2017-05-04 07:12:40
有 If-None-Match
header:
$ curl -i http://localhost:8888/hello -H 'If-None-Match: "1234"'
HTTP/1.1 304 Not Modified
Host: localhost:8888
Connection: close
X-Powered-By: PHP/7.0.15
Etag: "1234"