HTTP - buforowanie

Protokół HTTP jest zwykle używany w rozproszonych systemach informacyjnych, w których wydajność można poprawić, korzystając z pamięci podręcznych odpowiedzi. Protokół HTTP / 1.1 zawiera szereg elementów, które mają sprawić, że buforowanie będzie działać.

Celem buforowania w HTTP / 1.1 jest wyeliminowanie konieczności wysyłania żądań w wielu przypadkach oraz wyeliminowanie konieczności wysyłania pełnych odpowiedzi w wielu innych przypadkach.

Podstawowe mechanizmy pamięci podręcznej w HTTP / 1.1 to niejawne dyrektywy dla pamięci podręcznych, w których serwer określa czas wygaśnięcia i walidatory. UżywamyCache-Control nagłówek w tym celu.

Plik Cache-Controlnagłówek umożliwia klientowi lub serwerowi przesyłanie różnych dyrektyw w żądaniach lub odpowiedziach. Te dyrektywy zwykle zastępują domyślne algorytmy buforowania. Dyrektywy buforowania są określone na liście oddzielonej przecinkami. Na przykład:

Cache-control: no-cache

Następujące dyrektywy żądania pamięci podręcznej mogą być używane przez klienta w jego żądaniu HTTP:

SN Dyrektywa i opis żądania pamięci podręcznej
1 no-cache

Pamięć podręczna nie może używać odpowiedzi do spełnienia kolejnego żądania bez pomyślnej ponownej walidacji na serwerze pochodzenia.

2 no-store

Pamięć podręczna nie powinna przechowywać żadnych informacji o żądaniu klienta lub odpowiedzi serwera.

3 max-age = seconds

Wskazuje, że klient jest gotowy zaakceptować odpowiedź, której wiek nie jest dłuższy niż określony czas w sekundach.

4 max-stale [ = seconds ]

Wskazuje, że klient jest skłonny zaakceptować odpowiedź, która przekroczyła czas wygaśnięcia. Jeśli podano sekundy, nie może upłynąć więcej niż ten czas.

5 min-fresh = seconds

Wskazuje, że klient jest skłonny zaakceptować odpowiedź, której okres ważności nie jest krótszy niż jej aktualny wiek plus określony czas w sekundach.

6 no-transform

Nie konwertuje ciała jednostki.

7 only-if-cached

Nie pobiera nowych danych. Pamięć podręczna może wysyłać dokument tylko wtedy, gdy znajduje się w pamięci podręcznej i nie powinna kontaktować się z serwerem pochodzenia, aby sprawdzić, czy istnieje nowsza kopia.

Następujące dyrektywy odpowiedzi pamięci podręcznej mogą być używane przez serwer w odpowiedzi HTTP:

SN Dyrektywa i opis odpowiedzi pamięci podręcznej
1 public

Wskazuje, że odpowiedź może być buforowana przez dowolną pamięć podręczną.

2 private

Wskazuje, że całość lub część komunikatu odpowiedzi jest przeznaczona dla jednego użytkownika i nie może być zapisywana w pamięci podręcznej współużytkowanej.

3 no-cache

Pamięć podręczna nie może używać odpowiedzi do spełnienia kolejnego żądania bez pomyślnej ponownej weryfikacji na serwerze pochodzenia.

4 no-store

Pamięć podręczna nie powinna przechowywać żadnych informacji o żądaniu klienta lub odpowiedzi serwera.

5 no-transform

Nie konwertuje ciała jednostki.

6 must-revalidate

Pamięć podręczna musi weryfikować stan nieaktualnych dokumentów przed jej użyciem i nie należy używać tych, które utraciły ważność.

7 proxy-revalidate

Dyrektywa proxy-revalidate ma takie samo znaczenie jak dyrektywa must-revalidate, z wyjątkiem tego, że nie ma zastosowania do niewspółdzielonych pamięci podręcznych agentów użytkownika.

8 max-age = seconds

Wskazuje, że klient jest gotowy zaakceptować odpowiedź, której wiek nie jest dłuższy niż określony czas w sekundach.

9 s-maxage = seconds

Maksymalny wiek określony w tej dyrektywie zastępuje maksymalny wiek określony w dyrektywie max-age lub w nagłówku Expires. Dyrektywa s-maxage jest zawsze ignorowana przez prywatną pamięć podręczną.