|
|
Δημοσιεύτηκε στις 7/9/2015 7:30:51 μ.μ.
|
|
|
|

Λήξη κεφαλίδας HTTP και έλεγχος προσωρινής μνήμης
1. Έννοια
Το cache-control χρησιμοποιείται για τον έλεγχο της προσωρινής αποθήκευσης HTTP (μπορεί να μην εφαρμοστεί εν μέρει στο HTTP/1.0, μόνο το Pragma: no-cache υλοποιείται)
Μορφή στο πακέτο:
Cache-Control: cache-directive
cache-directive μπορεί να είναι η ακόλουθη:
Αίτημα: | "χωρίς κρυφή μνήμη" | "χωρίς κατάστημα" | "μέγιστη ηλικία" "=" δέλτα-δευτερόλεπτα | "max-stale" [ "=" δέλτα-δευτερόλεπτα ] | "min-fresh" "=" δέλτα-δευτερόλεπτα | "Μη-μετασχηματισμός" | "μόνο αν-αποθηκευμένο" | "προσωρινή επέκταση"
Απάντηση: | "δημόσιο" | "private" [ "=" <"> όνομα πεδίου <"> ] | "no-cache" [ "=" <"> όνομα πεδίου <"> ] | "χωρίς κατάστημα" | "Μη-μετασχηματισμός" | "Πρέπει να επανεπικυρωθεί" | "διακομιστής μεσολάβησης-επανεπικύρωση" | "μέγιστη ηλικία" "=" δέλτα-δευτερόλεπτα | "s-maxage" "=" δέλτα-δευτερόλεπτα | "προσωρινή επέκταση"
Μέρος της περιγραφής: Χωρίζεται σε κρυφή μνήμη ή όχι Το Public υποδεικνύει ότι η απόκριση μπορεί να αποθηκευτεί προσωρινά από οποιαδήποτε περιοχή cache. Το Private δηλώνει ότι δεν είναι δυνατή η επεξεργασία ολόκληρου ή μέρους του μηνύματος απάντησης ενός χρήστη από την κοινόχρηστη μνήμη cache. Αυτό επιτρέπει στον διακομιστή να περιγράφει μόνο πότε ο χρήστης είναι Μήνυμα μερικής απάντησης, το οποίο δεν είναι έγκυρο για αιτήματα από άλλους χρήστες. Το no-cache υποδεικνύει ότι το αίτημα ή το μήνυμα απάντησης δεν μπορεί να αποθηκευτεί προσωρινά (το HTTP/1.0 αντικαθίσταται με το no-cache του Pragma) Σύμφωνα με το τι μπορεί να αποθηκευτεί προσωρινά Το No-store χρησιμοποιείται για να αποτρέψει την ακούσια δημοσίευση σημαντικών πληροφοριών. Η αποστολή ενός μηνύματος αιτήματος θα κάνει τα μηνύματα αιτήματος και απάντησης να μην αποθηκεύονται στην προσωρινή μνήμη. Χρονικό όριο σύμφωνα με την κρυφή μνήμη Η μέγιστη ηλικία υποδεικνύει ότι ο πελάτης μπορεί να λάβει μια απάντηση με διάρκεια ζωής όχι μεγαλύτερη από έναν καθορισμένο χρόνο (σε δευτερόλεπτα). Το min-fresh υποδεικνύει ότι ο υπολογιστής-πελάτης μπορεί να λάβει μια απάντηση με χρόνο απόκρισης μικρότερο από τον τρέχοντα χρόνο συν τον καθορισμένο χρόνο. Η λέξη max-jale υποδεικνύει ότι ο υπολογιστής-πελάτης μπορεί να λάβει μηνύματα απάντησης πέρα από την περίοδο χρονικού ορίου. Εάν καθορίσετε μια τιμή για το μήνυμα max-jale, τότε ο υπολογιστής-πελάτης μπορεί να Λάβετε μηνύματα απάντησης που υπερβαίνουν την καθορισμένη τιμή της περιόδου υπερωριών. Οι λήξεις αντιπροσωπεύουν τον χρόνο ύπαρξης, επιτρέποντας στον πελάτη να μην ελέγξει (να υποβάλει αίτημα) πριν από αυτόν τον χρόνο, που ισοδυναμεί με τη μέγιστη ηλικία Αποτέλεσμα. Αλλά αν υπάρχουν ταυτόχρονα, αντικαθίστανται από τη μέγιστη ηλικία του Cache-Control. Μορφή: Expires = "Λήγει" ":" Ημερομηνία HTTP Για παράδειγμα
Expires: Thu, 01 Dec 1994 16:00:00 GMT (必须是GMT格式)
2. Εφαρμογή Ορίστε τη λήξη και τον έλεγχο της προσωρινής μνήμης μέσω META μέσω HTTP <meta http-equiv="Cache-Control" content="max-age=7200" /> <meta http-equiv="Expires" content="Mon, 20 Jul 2009 23:00:00 GMT" /> Οι παραπάνω ρυθμίσεις είναι απλώς παραδείγματα και μπορείτε πραγματικά να χρησιμοποιήσετε μία από αυτές. Εάν το γράψετε με αυτόν τον τρόπο, ισχύει μόνο για την ιστοσελίδα, όχι για εικόνες ή άλλα αιτήματα στην ιστοσελίδα και δεν θα κάνει καμία προσωρινή μνήμη. Με αυτόν τον τρόπο, ο πελάτης θα έχει περισσότερα αιτήματα και παρόλο που είναι απλώς κάτι που ελέγχει την κατάσταση Τελευταία τροποποίηση, ο αριθμός των αιτημάτων σίγουρα θα επηρεάσει την ταχύτητα περιήγησης. Εάν θέλετε να προσθέσετε προσωρινή μνήμη σε ένα αρχείο, μπορείτε να χρησιμοποιήσετε τη λειτουργική μονάδα mod_expire του Apache, η οποία γράφεται ως <IfModule mod_expires.γ> ΛήγειΕνεργό στις ΛήγειΠροεπιλογή "πρόσβαση συν 1 ημέρες" </IfModule> Θυμάμαι ότι το ExpiresActive έχει ρυθμιστεί σε On, δεν το έβαλα στην αρχή και φαίνεται ότι όσο κι αν είναι το YSlow, δεν μπορώ να βρω τον μηχανισμό προσωρινής αποθήκευσης. Εάν το προσθέσετε έτσι, θα είναι προεπιλεγμένο σε όλα. Εάν θέλετε να στοχεύσετε μεμονωμένους τύπους MIME, μπορείτε να κάνετε τα εξής: ExpiresByType image/gif "πρόσβαση συν 5 ώρες 3 λεπτά" Δείτε το Apache Module mod_expires Επιπλέον, όταν κάνετε κλικ στο κουμπί Ανανέωση στο πρόγραμμα περιήγησης, οι αιτήσεις που αποστέλλονται από τον υπολογιστή-πελάτη είναι όλες max-age=0, υποδεικνύοντας ότι η αίτηση έχει επικυρωθεί και αποσταλεί στον διακομιστή Εάν ζητήσετε να ελέγξετε την προσωρινή μνήμη και στη συνέχεια να ενημερώσετε την προσωρινή μνήμη, θα λάβετε γενικά το 304 Not Modified, πράγμα που σημαίνει ότι δεν υπάρχει καμία αλλαγή.
|
Προηγούμενος:Βρείτε θέσεις μερικής απασχόλησης και κερδίστε επιπλέον χρήματα Προσλάβετε εργαζόμενους μερικής απασχόλησης με άριστη μεταχείριση, διακανονισμό μετρητών, περισσότερους από 300 την ημέραΕπόμενος:Όπως το ασαφές ερώτημα στο Linq σε sql
|