繁体   English   中英

Slim Framework 2-无法通过etag()获得HTTP 304代码

[英]Slim Framework 2 - Not getting HTTP 304 code with etag()

我正在使用苗条的框架2 etag()来获取缓存数据,一切工作正常,我正在与邮递员或任何其他客户端获取缓存数据,但在其余客户端中始终获得HTTP 200 OK响应,但应该是HTTP 304当数据来自缓存时

以下是我的瘦API:

 $app->get('/getNew', function () use ($app){
     $app->etag('uniqueEtag12');
    echo "I am updated one";
  });

我不知道为什么我每次在其余客户端中都得到200 OK响应代码时,为什么要在响应中获取缓存数据,以下是我的其余客户端响应快照

在此处输入图片说明

为什么此状态码始终为200 OK为什么我没有获得状态码304请帮助我

etag()方法有两件事:

  1. ETag标头添加到响应中
  2. 如果客户端发送的If-None-Match标头的值为uniqueEtag12则发送304状态响应

因此,我认为您的请求中不包含If-None-Match标头。

示例代码:

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();

使用卷曲测试。

没有If-None-Match标头:$ 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标头:

$ 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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM