2016-07-22 37 views
0

我有一個網站,客戶端搜索一個術語,並通過ajax請求檢索結果。在PHP方面,被調用的腳本檢查緩存的日期(緩存是文件),如果它早於建立時間刷新結果,否則返回緩存文件內容:die(file_get_contents($cache_path)); 緩存時間是幾個小時,一個刷新它只需幾秒鐘,所以最大部分的請求將以緩存響應結束。 所以我認爲使用header("location: $cache_path");對於服務器來說壓力較小,因爲它只是告訴瀏覽器從緩存文件中獲取內容而不通過腳本。 不利的一面是,緩存文件路徑將變爲公開的(這不是最大的問題,因爲內容是相同的),但是,你知道,給予資源位置永遠不會好...... 因此,性能明智, file_get_contents和重定向之間有很大的區別嗎?平均緩存文件大小爲120kb ...任何其他想法和建議?php header location vs file_get_contents performace

+0

任何請求中最長的部分通常是網絡延遲和開銷。通過重定向客戶端,您可能會導致另一個請求,這可能會對他們更慢。如果您擔心性能,請設置內存緩存。 – miken32

回答

0

您可以使用「內部重定向」:通過X-Accel-Redirect頭對nginx或X-Sendfile進行Apache處理。在這種情況下,您不會向客戶端顯示任何其他URL,也不會處理腳本中的緩存文件。

有關配置詳細信息,您可以閱讀an official documentation或當然還有其他SO問題(如this one)。