คำถามติดแท็ก cache-control

5
รหัสสถานะ HTTP 200 (แคช) กับรหัสสถานะ 304 ต่างกันอย่างไร
ฉันใช้ปลั๊กอิน "Page Speed" ของ Google สำหรับ Firefox เพื่อเข้าถึงเว็บไซต์ของฉัน ส่วนประกอบบางอย่างในหน้าของฉันถูกระบุว่าเป็นสถานะ HTTP: 200 200 (แคช) 304 ด้วย "ความเร็วหน้า" ของ Google สิ่งที่ฉันสับสนคือความแตกต่างระหว่าง 200 (แคช) กับ 304 ฉันรีเฟรชหน้าเว็บหลายครั้ง (แต่ยังไม่ได้ล้างแคช) และดูเหมือนว่า favicon.ico ของฉันและภาพไม่กี่ภาพจะเป็นสถานะ = 200 (แคช) ในขณะที่ภาพอื่น ๆ เป็นสถานะ http 304 ฉันไม่เข้าใจว่าทำไมถึงแตกต่าง อัปเดต : ใช้ Google "Page Speed" ฉันได้รับ "200 (แคช)" สำหรับhttp://example.com/favicon.icoรวมถึงhttp://cdn.example.com/js/ga.js แต่ฉันได้รับสถานะ http "304" …


19
แคช, PHP สร้างภาพขนาดย่อโหลดช้า
ส่วนคำถาม A ▉ (100 รางวัลรับรางวัล) คำถามหลักคือทำอย่างไรให้เว็บไซต์นี้โหลดเร็วขึ้น ก่อนอื่นเราต้องอ่านน้ำตกเหล่านี้ ขอบคุณสำหรับคำแนะนำของคุณเกี่ยวกับการวิเคราะห์การอ่านค่าของน้ำตก เห็นได้จากกราฟน้ำตกต่างๆที่แสดงที่นี่เป็นคอขวดหลัก: รูปขนาดย่อที่สร้างโดย PHP การโหลด jquery ที่ไม่ใช้โปรโตคอลจาก CDN ที่ David แนะนำให้ฉันได้รับรางวัลของฉันแม้ว่าจะทำให้ไซต์ของฉันเร็วขึ้นโดยรวมเพียง 3% และในขณะที่ไม่ตอบคอขวดหลักของเว็บไซต์ เวลาสำหรับการชี้แจงคำถามของฉันและอีกรางวัล: ส่วนคำถาม B ▉ (ได้รับรางวัล 100 รางวัล) ตอนนี้โฟกัสใหม่นี้เพื่อแก้ไขปัญหาที่ภาพ jpg จำนวน 6 ภาพมีซึ่งทำให้การโหลดล่าช้ามากที่สุด เหล่านี้ 6 ภาพขนาดย่อ PHP สร้างเล็ก ๆ และมีเพียง 3 ~ 5 กิโล แต่โหลดค่อนข้างมากอย่างช้าๆ สังเกตว่า " time to first byte …

4
ความแตกต่างระหว่างไม่มีแคชและต้องตรวจสอบใหม่
จาก RFC 2616 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1 ไม่มีแคช หากคำสั่ง no-cache ไม่ได้ระบุชื่อฟิลด์ดังนั้นแคชจะต้องไม่ใช้การตอบสนองเพื่อตอบสนองต่อการร้องขอในภายหลังโดยไม่ทำการตรวจสอบซ้ำกับเซิร์ฟเวอร์ต้นทาง สิ่งนี้ทำให้เซิร์ฟเวอร์ต้นทางสามารถป้องกันการแคชได้แม้กระทั่งแคชที่ได้รับการกำหนดค่าให้ส่งคืนการตอบสนองเก่าต่อคำขอของไคลเอ็นต์ ดังนั้นจึงแนะนำให้ตัวแทนตรวจสอบการตอบกลับทั้งหมดอีกครั้ง เปรียบเทียบสิ่งนี้กับ ต้องตรวจสอบใหม่ เมื่อคำสั่งต้องตรวจสอบความถูกต้องอยู่ในการตอบกลับที่ได้รับจากแคชแคชนั้นจะต้องไม่ใช้รายการหลังจากที่กลายเป็นเก่าเพื่อตอบสนองต่อการร้องขอต่อมาโดยไม่ต้องตรวจสอบซ้ำกับเซิร์ฟเวอร์ต้นทางครั้งแรก ดังนั้นจึงแนะนำให้ตัวแทนตรวจสอบการตอบสนองเก่าอีกครั้ง โดยเฉพาะอย่างยิ่งในเรื่องที่no-cacheว่าตัวแทนผู้ใช้นี้ปฏิบัติต่อคำสั่งนี้อย่างชัดเจนหรือไม่? อะไรคือสิ่งที่no-cacheถ้ามีmust-revalidateและmax-age? ดูความคิดเห็นนี้: http://palpapers.plynt.com/issues/2008Jul/cache-control-attributes/ ไม่มีแคช แม้ว่าคำสั่งนี้ฟังดูเหมือนเป็นการสั่งให้เบราว์เซอร์ไม่แคชหน้าเว็บ แต่ก็มีความแตกต่างเล็กน้อย คำสั่ง“ no-cache” ตาม RFC บอกเบราว์เซอร์ว่าควรตรวจสอบความถูกต้องอีกครั้งกับเซิร์ฟเวอร์ก่อนที่จะแสดงหน้าเว็บจากแคช การตรวจสอบความถูกต้องเป็นเทคนิคที่เรียบร้อยซึ่งช่วยให้แอปพลิเคชันประหยัดแบนด์วิดท์ หากหน้าเว็บที่เบราว์เซอร์ไม่ได้เปลี่ยนเซิร์ฟเวอร์เพียงแค่ส่งสัญญาณไปยังเบราว์เซอร์และหน้าจะแสดงจากแคช ดังนั้นเบราว์เซอร์ (อย่างน้อยก็ในทางทฤษฎี) จะเก็บหน้าเว็บไว้ในแคช แต่จะแสดงเฉพาะเมื่อทำการตรวจสอบความถูกต้องใหม่กับเซิร์ฟเวอร์ ในทางปฏิบัติ IE และ Firefox ได้เริ่มรักษาคำสั่ง no-cache ราวกับว่ามันสั่งให้เบราว์เซอร์ที่จะไม่แคชแม้แต่หน้า เราเริ่มสังเกตพฤติกรรมนี้เมื่อประมาณหนึ่งปีที่แล้ว มีใครมีอะไรเป็นทางการมากขึ้นในเรื่องนี้? ปรับปรุง คำสั่งต้องตรวจสอบความถูกต้องควรจะใช้โดยเซิร์ฟเวอร์หากและหากล้มเหลวในการตรวจสอบคำขอในการเป็นตัวแทนอาจส่งผลให้การดำเนินงานที่ไม่ถูกต้องเช่นธุรกรรมทางการเงินที่ไม่ได้ดำเนินการอย่างเงียบ ๆ นั่นคือสิ่งที่ฉันไม่เคยใส่ใจจนถึงตอนนี้ RFC กำลังบอกว่าจะไม่ใช้งานต้องทำการตรวจสอบซ้ำอีกครั้ง สิ่งนี้คือด้วยบริการบนเว็บคุณจะต้องมองในแง่ลบและถือว่าเลวร้ายที่สุดสำหรับแอพไคลเอ็นต์ที่คุณไม่รู้จัก ทรัพยากรเก่าใด ๆ …

4
Cache-Control คืออะไร: ส่วนตัว?
เมื่อฉันเยี่ยมชมchesseng.herokuapp.comฉันได้รับส่วนหัวการตอบสนองที่ดูเหมือน Cache-Control:private Connection:keep-alive Content-Encoding:gzip Content-Type:text/css Date:Tue, 16 Oct 2012 06:37:53 GMT Last-Modified:Tue, 16 Oct 2012 03:13:38 GMT Status:200 OK transfer-encoding:chunked Vary:Accept-Encoding X-Rack-Cache:miss แล้วฉันจะรีเฟรชหน้าและรับ Cache-Control:private Connection:keep-alive Date:Tue, 16 Oct 2012 06:20:49 GMT Status:304 Not Modified X-Rack-Cache:miss ดังนั้นดูเหมือนว่าแคชจะทำงาน ถ้าที่ทำงานสำหรับแคชแล้วสิ่งที่เป็นจุดของหมดอายุและCache-Control: max-age หากต้องการเพิ่มความสับสนเมื่อฉันทดสอบหน้าเว็บที่https://developers.google.com/speed/pagespeed/insights/มันจะบอกฉันถึง

2
มันดีไหมถ้าคำตอบแรกเป็นส่วนตัวกับ AppCache (Symfony2)?
ฉันพยายามใช้การแคช http ในตัวควบคุมของฉันฉันกำลังตั้งค่าการตอบสนองดังนี้: $response->setPublic(); $response->setMaxAge(120); $response->setSharedMaxAge(120); $response->setLastModified($lastModifiedAt); โหมด dev ในสภาพแวดล้อม dev การตอบสนองแรกคือ 200 โดยมีส่วนหัวต่อไปนี้: cache-control:max-age=120, public, s-maxage=120 last-modified:Wed, 29 Feb 2012 19:00:00 GMT อีก 2 นาทีทุกการตอบกลับคือ 304 โดยมีส่วนหัวดังต่อไปนี้: cache-control:max-age=120, public, s-maxage=120 นี่เป็นสิ่งที่ฉันคาดหวังไว้ โหมดแยง ในส่วนหัวการตอบสนองโหมด prod จะแตกต่างกัน โปรดทราบว่าใน app.php ฉันหุ้มเคอร์เนลใน AppCache การตอบสนองแรกคือ 200 ที่มีส่วนหัวต่อไปนี้: cache-control:must-revalidate, no-cache, private last-modified:Thu, 01 Mar 2012 …

1
ส่วนตัวเทียบกับสาธารณะในการควบคุมแคช
คุณช่วยอธิบายตัวอย่างที่ระบุความแตกต่างระหว่าง Public และ Private Cache-Control ในแอปพลิเคชัน asp.net ที่โฮสต์ใน IIS ได้ไหม ฉันอ่านในMSDNว่าความแตกต่างมีดังต่อไปนี้: สาธารณะ: ตั้งค่าการควบคุมแคช: สาธารณะเพื่อระบุว่าการตอบสนองสามารถแคชได้โดยไคลเอ็นต์และแคช (พร็อกซี) ที่ใช้ร่วมกัน ส่วนตัว:ค่าเริ่มต้น ตั้งค่า Cache-Control: private เพื่อระบุว่าการตอบกลับสามารถแคชได้เฉพาะบนไคลเอนต์และไม่ใช้แคช (พร็อกซีเซิร์ฟเวอร์) ที่ใช้ร่วมกัน ฉันไม่แน่ใจว่าฉันเข้าใจข้อดีข้อเสียของแต่ละทางเลือกอย่างสมบูรณ์แล้ว ตัวอย่างสำหรับเวลาที่จะใช้หรือไม่ใช้มันจะดีมาก ตัวอย่างเช่นฉันควรทำอย่างไรหากมีเว็บเซิร์ฟเวอร์สองเครื่องที่โฮสต์แอปพลิเคชันเดียวกัน มีอะไรที่ต้องระวังถ้าฉันเลือกส่วนตัวหรือสาธารณะ

5
วิธีป้องกัน Browser cache สำหรับ php site
ฉันมีไซต์ php ที่ทำงานในเซิร์ฟเวอร์คลาวด์เมื่อฉันเพิ่มไฟล์ใหม่ css, js หรืออิมเมจเบราว์เซอร์จะโหลดไฟล์ js, css และรูปภาพเดิมที่เก็บไว้ในแคช ไซต์ของฉันมีประเภทหลักและเมตาแท็กดังต่อไปนี้ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0)"> <meta http-equiv="Page-Exit" content="blendTrans(Duration=1.0)"> <meta http-equiv="Site-Enter" content="blendTrans(Duration=1.0)"> <meta http-equiv="Site-Exit" content="blendTrans(Duration=1.0)"> เนื่องจากประเภทด้านบนและรหัสเมตาฉันจึงโหลดไฟล์เดียวกันที่แคชไว้ในเบราว์เซอร์แทนที่จะเป็นไฟล์ใหม่

6
จะป้องกัน Browser cache บนเว็บไซต์ Angular 2 ได้อย่างไร?
ขณะนี้เรากำลังดำเนินการโครงการใหม่ที่มีการอัปเดตเป็นประจำซึ่งลูกค้ารายหนึ่งของเราจะใช้งานทุกวัน โครงการนี้กำลังพัฒนาโดยใช้ angular 2 และเรากำลังประสบปัญหาแคชนั่นคือลูกค้าของเราไม่เห็นการเปลี่ยนแปลงล่าสุดในเครื่องของพวกเขา โดยส่วนใหญ่ไฟล์ html / css สำหรับไฟล์ js ดูเหมือนจะได้รับการอัปเดตอย่างถูกต้องโดยไม่ก่อให้เกิดปัญหามากนัก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.