簡體   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