當前位置:首頁 » 文件管理 » apachephp緩存

apachephp緩存

發布時間: 2022-07-19 13:13:22

Ⅰ 為什麼每次更新php代碼都要重啟apache才生效

殺掉後台已經運行的的php進程

Ⅱ 用php語言從伺服器返回數據超過80k後速度就非常非常慢!測試後發現好像是輸出緩存問題,請問怎麼解決!

對於php的輸出,貌似apache採取的策略是小段輸出直接傳輸,大段輸出就切割成chunked分段。在chunked分段沒有傳輸完成之前,apache和php一直保持連接狀態。也就是說,如果php的輸出字元串比較小,那麼apache會把這些數據暫存,等到php執行完了之後再發給瀏覽器。而當php輸出大段字元的時候,apache就不會緩存輸出,直接把輸出丟給瀏覽器,而且在此過程中會暫時停止php的執行!
所以使用緩存是解決此類問題的根本辦法。ob_start()就是啟用php的緩沖區。php還可以通過安裝xcache等緩存模塊實現。apache中開啟gzip壓縮也可以。

Ⅲ apache&php&html: etag、last-modified究竟怎麼用

基礎知識
1) 什麼是」Last-Modified」?
在瀏覽器第一次請求某一個URL時,伺服器端的返回狀態會是200,內容是你請求的資源,同時有一個Last-Modified的屬性標記此文件在服務期端最後被修改的時間,格式類似這樣:
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
客戶端第二次請求此URL時,根據 HTTP 協議的規定,瀏覽器會向伺服器傳送 If-Modified-Since 報頭,詢問該時間之後文件是否有被修改過:
If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
如果伺服器端的資源沒有變化,則自動返回 HTTP 304 (Not
Changed.)狀態碼,內容為空,這樣就節省了傳輸數據量。當伺服器端代碼發生改變或者重啟伺服器時,則重新發出資源,返回和第一次請求時類似。從而
保證不向客戶端重復發出資源,也保證當伺服器有變化時,客戶端能夠得到最新的資源。
2) 什麼是」Etag」?
HTTP 協議規格說明定義ETag為「被請求變數的實體值」 (參見 —— 章節 14.19)。
另一種說法是,ETag是一個可以與Web資源關聯的記號(token)。典型的Web資源可以一個Web頁,但也可能是JSON或XML文檔。伺服器單
獨負責判斷記號是什麼及其含義,並在HTTP響應頭中將其傳送到客戶端,以下是伺服器端返回的格式:
ETag: "50b1c1d4f775c61:df3"
客戶端的查詢更新格式是這樣的:
If-None-Match: W/"50b1c1d4f775c61:df3"
如果ETag沒改變,則返回狀態304然後不返回,這也和Last-Modified一樣。本人測試Etag主要在斷點下載時比較有用。
Last-Modified和Etags如何幫助提高性能?
聰明的開發者會把Last-Modified
和ETags請求的http報頭一起使用,這樣可利用客戶端(例如瀏覽器)的緩存。因為伺服器首先產生
Last-Modified/Etag標記,伺服器可在稍後使用它來判斷頁面是否已經被修改。本質上,客戶端通過將該記號傳回伺服器要求伺服器驗證其(客
戶端)緩存。

過程如下:
1,客戶端請求一個頁面(A)。

2,伺服器返回頁面A,並在給A加上一個Last-Modified/ETag。

3,客戶端展現該頁面,並將頁面連同Last-Modified/ETag一起緩存。

4,客戶再次請求頁面A,並將上次請求時伺服器返回的Last-Modified/ETag一起傳遞給伺服器。

5,伺服器檢查該Last-Modified或ETag,並判斷出該頁面自上次客戶端請求之後還未被修改,直接返回響應304和一個空的響應體。

------------------------------------------------------------------------------------------------

正確使用Etag和Expires標識處理,可以使得頁面更加有效被Cache。
在客戶端通過瀏覽器發出第一次請求某一個URL時,根據 HTTP 協議的規定,瀏覽器會向伺服器傳送報頭(Http Request
Header),伺服器端響應同時記錄相關屬性標記(Http Reponse Header),伺服器端的返回狀態會是200,格式類似如下:
HTTP/1.1 200 OK
Date: Tue, 03 Mar 2009 04:58:40 GMT
Content-Type: image/jpeg
Content-Length: 83185
Last-Modified: Mon, 22 Nov 2010 16:29:24 GMT
Cache-Control: max-age=2592000

Expires: Thu, 02 Apr 2009 05:14:08 GMT
Etag: "xok.la-961AA72-4CEA99B4415628″客戶端第二次請求此URL時,根據 HTTP
協議的規定,瀏覽器會向伺服器傳送報頭(Http Request
Header),伺服器端響應並記錄相關記錄屬性標記文件沒有發生改動,伺服器端返回304,直接從緩存中讀取:
HTTP/1.x 304 Not Modified
Date: Tue, 03 Mar 2009 05:03:56 GMT
Content-Type: image/jpeg
Content-Length: 83185
Last-Modified: Mon, 22 Nov 2010 16:29:24 GMT
Cache-Control: max-age=2592000
Expires: Thu, 02 Apr 2009 05:14:08 GMT
Etag: "xok.la-961AA72-4CEA99B4415628″其中Last-Modified、Expires和Etag是標記頁面緩存標識

一、Last-Modified、Expires和Etag相關工作原理
1、Last-Modified
在瀏覽器第一次請求某一個URL時,伺服器端的返回狀態會是200,內容是你請求的資源,同時有一個Last-Modified的屬性標記 (Http Reponse Header)此文件在服務期端最後被修改的時間,格式類似這樣:
Last-Modified: Mon, 22 Nov 2010 16:29:24 GMT客戶端第二次請求此URL時,根據 HTTP
協議的規定,瀏覽器會向伺服器傳送 If-Modified-Since 報頭(Http Request
Header),詢問該時間之後文件是否有被修改過:
If-Modified-Since: Mon, 22 Nov 2010 16:29:24 GMT如果伺服器端的資源沒有變化,則自動返回 HTTP
304
(NotChanged.)狀態碼,內容為空,這樣就節省了傳輸數據量。當伺服器端代碼發生改變或者重啟伺服器時,則重新發出資源,返回和第一次請求時類
似。從而保證不向客戶端重復發出資源,也保證當伺服器有變化時,客戶端能夠得到最新的資源。
註:如果If-Modified-Since的時間比伺服器當前時間(當前的請求時間request_time)還晚,會認為是個非法請求
2、Etag工作原理
HTTP 協議規格說明定義ETag為」被請求變數的實體標記」 (參見14.19)。簡單點即伺服器響應時給請求URL標記,並在HTTP響應頭中將其傳送到客戶端,類似伺服器端返回的格式:
Etag: "xok.la-961AA72-4CEA99B4415628″客戶端的查詢更新格式是這樣的:
If-None-Match: "xok.la-961AA72-4CEA99B4415628″如果ETag沒改變,則返回狀態304。
即:在客戶端發出請求 後,Http Reponse Header中包含 Etag: 「xok.la-961AA72-4CEA99B4415628″
標識,等於告訴Client端,你拿到的這個的資源有表示
ID:xok.la-961AA72-4CEA99B4415628。當下次需要發Request索要同一個
URI的時候,瀏覽器同時發出一個If-None-Match報頭( Http
RequestHeader)此時包頭中信息包含上次訪問得到的Etag: 「xok.la-961AA72-4CEA99B4415628″標識。
If-None-Match:
"xok.la-961AA72-4CEA99B4415628",這樣,Client端等於Cache了兩份,伺服器端就會比對2者的etag。如果
If- None-Match為False,不返回200,返回304 (Not Modified) Response。
3、Expires
給出的 日期/時間後,被響應認為是過時。如Expires: Thu, 02 Apr 2009 05:14:08 GMT
需和Last-Modified結合使用。用於控制請求文件的有效時間,當請求數據在有效期內時客 戶端瀏覽器從緩存請求數據而不是伺服器端. 當緩存中數據失效或過期,才決定從伺服器更新數據。
4、Last-Modified和Expires
Last-
Modified標識能夠節省一點帶寬,但是還是逃不掉發一個HTTP請求出去,而且要和Expires一起用。而Expires標識卻使得瀏覽器乾脆連
HTTP請求都不用發,比如當用戶F5或者點擊Refresh按鈕的時候就算對於有Expires的URI,一樣也會發一個HTTP請求出去,所
以,Last-Modified還是要用的,而 且要和Expires一起用。
5、 Etag和Expires
如果伺服器端同時設置了 Etag和Expires 時,Etag原理同樣,即與Last-Modified/Etag對應的HttpRequest
Header:If-Modified-Since和If-None-Match。我們可以看到這兩個Header的值和WebServer發出的
Last-Modified,Etag值完全一樣;在完全匹配If-Modified-Since和If-None-Match即檢查完修改時間和
Etag之後,伺服器才能返回304.
6、Last-Modified和Etag
Last-Modified 和ETags請求的http報頭一起使用,伺服器首先產生 Last-Modified/Etag標記,伺服器可在稍後使用它來判斷頁面是否已經被修改,來決定文件是否繼續緩存
過程如下:
1. 客戶端請求一個頁面(A)。
2. 伺服器返回頁面A,並在給A加上一個Last-Modified/ETag。
3. 客戶端展現該頁面,並將頁面連同Last-Modified/ETag一起緩存。
4. 客戶再次請求頁面A,並將上次請求時伺服器返回的Last-Modified/ETag一起傳遞給伺服器。
5. 伺服器檢查該Last-Modified或ETag,並判斷出該頁面自上次客戶端請求之後還未被修改,直接返回響應304和一個空的響應體。
註:
1、Last- Modified和Etag頭都是由Web Server發出的Http Reponse Header,Web Server應該同時支持這兩種頭。
2、Web Server發送完Last-Modified/Etag頭給客戶端後,客戶端會緩存這些頭;
3、客戶端再次發起相同頁面的請求時,將分別發送與Last-Modified/Etag對應的Http
RequestHeader:If-Modified-Since和If-None-Match。我們可以看到這兩個Header的值和
WebServer發出的Last-Modified,Etag值完全一樣;
4、 通過上述值到伺服器端檢查,判斷文件是否繼續緩存;

更多內容參見:http://blog.csdn.net/21aspnet/article/details/6604805

Ⅳ phpstudy怎麼清除apache緩存

#ErrorLog "logs/error.log"
#CustomLog "logs/access.log" common

修改在apache目錄下的httpd.conf文件,注釋上面的兩行就行了。

Ⅳ 修改PHP文件後為什麼要重啟apache伺服器

因為重啟後才重新讀取你的php的配置文件
每次PHP啟動的時候就讀取php的配置文件到內存 然後就一直不變了~·直到下次重啟~

Ⅵ 關於php在Apache的配置問題 偶爾php文件不解析直接彈出文件下載

在200 300用戶時什麼意思,麻煩把問題描述清楚,一般情況下不會出現偶爾不解析的情況,不排除緩存的可能。
你的關鍵代碼也貼出來看看。

Ⅶ 求php高手現身,關於xampp(lampp)集成環境的問題。apache 一直有緩存

已處理,望採納! ^~^

Ⅷ centos7 apache訪問php文件變成下載index.php

nginx應該是先裝的,已經關聯php服務,httpd沒有關聯php,所以,就算你裝了php也沒用

Ⅸ apache 伺服器配置php緩存這樣的需求,像寫.htaccess這樣的文件按什麼規則來寫手冊看著有些迷糊,求指點

沒什麼特殊規則,只要在httpd.conf中聲明下htaccess的文件名,允許許可權覆蓋, 在htaccess中寫東西跟在httpd全局配置文件差不多

熱點內容
如何用安卓編譯項目 發布:2025-01-24 08:30:46 瀏覽:863
計算機同時輸出和存儲設備的區別 發布:2025-01-24 08:29:21 瀏覽:581
食物語上傳 發布:2025-01-24 07:58:44 瀏覽:754
編程相關書籍 發布:2025-01-24 07:55:45 瀏覽:430
英雄聯盟手游需要哪些配置 發布:2025-01-24 07:42:03 瀏覽:985
regex可以靜態編譯嗎 發布:2025-01-24 07:40:32 瀏覽:79
怎麼編譯rec 發布:2025-01-24 07:39:04 瀏覽:56
卡片沒加密 發布:2025-01-24 07:33:56 瀏覽:381
linux備份mysql 發布:2025-01-24 07:26:54 瀏覽:391
蘋果手機忘記id密碼怎麼刷機 發布:2025-01-24 07:26:47 瀏覽:695