php http başlıkları

2 Cevap php

Birkaç şey merak ediyorum.

Http başlıkları Sayfadaki her şeyi önbelleğe gelmez. Ve ben bazı javascript dosyaları varsa, bu daha sonraki sayfalar için de bunları önbelleğe, ya da daha karmaşık o olacaktır. Örnek: Ben sayfa1.php tüm javascript dosyaları önbelleğe Eğer dosyalar hala sayfa2.php önbelleğe olacak yoksa sadece sayfa1.php için geçerli sayfa1.php dosyaları önbelleğe gelmez.

Diğer soru ...

Ben http başlıkları hurda ve sadece (YSlow kuzen soran http başlıkları kullanmak için söylüyor) APC kullanmak ve bu yüzden ne kadar karmaşık ise, ya da aslında her ikisini de kullanmak mümkün olmalıdır. Herhangi bir bilgi için teşekkürler, Ive okuyorum ama bu sorular gerçekten metinde cevap değildi.

2 Cevap

Eğer sadece normal .js dosyaları hizmet ediyorsanız, web sunucusu sizin için önbelleğe ilgilenir. .js dosya sizin sayfalarınıza birinden bağlantılı ilk defa indirilebilir olacak. Kullanıcı yeniden yükler sayfası veya aynı .js dosyasını kullanan bu tamamen başka bir sayfaya gittiğinde, tarayıcı önbelleğe alınmış kopyasını kullanılacaktır. Eğer <script src="code.js"></script> etiketleri ile komut dosyaları yüklediğinizde geçerlidir.

Eğer tek başına, ayrı .js dosyalar varsa budur. Diğer taraftan, JavaScript kodu, örneğin PHP betikleri oluşturmak HTML, gömülü, eğer:

<script type="text/javascript">
  alert("Hello world!");
</script>

... Bu komut dosyaları .php dosyası yüklenir, her seferinde yeniden oluşturulur. Eğer PHP çıktı önbelleğe arıyorsanız o zaman olabilir, PHP komut gelen uygun HTTP başlıklarını belirleyerek kendinizi önbelleğe yönetmek gerekir ki başlıkların Cache-Control aile veya {[yoluyla (2)]} ve başlıkları ETag tarzı.

Genellikle kullanıcı girişi dayalı değişiklikleri dinamik içerik üreten konum beri önbelleğe alma ve PHP dosyaları genellikle olsa, birlikte gitme, gün, kurabiye, vb zaman önbelleğe tamamen erken optimizasyon karşı genel programlama uyarı bir optimizasyon gibi geçerlidir. Eğer pisliği HTTP başlıklarını Eğer kendinize bir sürü baş ağrısı (ki bana inan!) Neden olabilir. Genel bir kural olarak, muhtemelen sadece Apache izin ya da IIS bu gibi gelişmiş HTTP şeyler dikkat çekmek ve bunu yapmak için bir seçici need varsa sadece HTTP başlıklarıyla muck olabilir.

Ben önbelleğe farklı kafa karıştırıcı düşünüyorum. Burada yaklaşık 3 ya da 4 çok farklı şeyler konuştuk.

  1. browser caching -- any normal browser will cache images, JS files, and CSS files between pages. Meaning, the second time a browser wants to display any particular image from your site, it will load it from it's local disk cache instead of going back to your server for it. All this stuff just happens -- don't mess around with it, and it just works. (exceptions: browsing user has turned off caching, you've changed headers to avoid caching, your mime.types aren't set up correctly so the browser doesn't treat these files correctly.)

  2. sunucu tarafı içerik önbelleğe alma - Sayfalarınız SUNUCUDA yavaş render ise, etrafında çıkış tutmak için çeşitli disk-ve-RAM önbelleğe alma programları kullanmak, ve her sayfa her zaman işlemek zorunda sunucu engelleyebilirsiniz. Bu sadece oldukça statik sitelerin veya sayfaların statik parçaları için çalışıyor.

  3. APC içerik önbelleğe alma - APC bir sunucu tarafı RAM önbelleğine rasgele içerik şeyler izin komutları vardır. Sisteminize bir parça işlemek için uzun bir zaman alır, ancak birçok sunucu hit tarafından yeniden olabilir, bu iyi bir seçimdir.

  4. APC kod önbelleğe alma - Metin PHP betikleri "pseudo-derlenmiş", daha sonra yürütme için PHP çalışma gönderilir vardır. APC RAM'de "pseudo-derlenmiş" PHP sahne önbelleğe nedenle bu "sözde-derleme" kademeli, çok yavaş olabilir ve gereksiz olabilir. Bu oldukça dezavantaj bütün bir web sitesi hızlandırabilir.

Maalesef bu TMI eğer.