Browsed by
Category: Http dla developerów

Zapytania warunkowe oparte na sumach kontrolnych

Zapytania warunkowe oparte na sumach kontrolnych

W tym przypadku stawiane warunki są oparte na pewnym kluczu dla zasobu. Powinien on być silnym walidatorem, a więc zmieniać się za każdym razem, gdy zasób ulegnie zmianie. Definiuje się go za pomocą nagłówka ETag: Response Cache-Control:public, max-age=31536000 ETag: “15f0fff99ed5aae4edffdd6496d7131f” Gdy klient chce ponownie pobrać dany zasób, informuje serwer o ETagu aktualnie przechowywanym w cache’u. Gdy ten się zmieni należy ponownie przesłać treść zasobu. Request If-None-Match: “15f0fff99ed5aae4edffdd6496d7131f” W tym przypadku istnieją 3 użyteczne nagłówki: If-Match – używane do warunkowego wykonywania…

Read More Read More

Nagłówki cache

Nagłówki cache

Age W przypadku, gdy jako wynik zapytania jest zwracany zasób przechowywany w cache, nagłówek ten mówi nam, ile czasu (w sekundach) minęło od pobrania treści rekordu. Cache-Control Jest on stosowany do sterowania zachowaniem cache. Może posiadać niżej wymienione parametry: max-age – wskazuje jak długi czas życia (w sekundach) przechowywanego zasobu jest akceptowalny; może być używany zarówno w zapytaniach jak i odpowiedziach. Ustawienie max-age: 0 powoduje, że zasób jest dynamiczny i nie podlega cache’owaniu. Jednak nie powinniśmy tego nadużywać, bo dla…

Read More Read More

Sprawdzanie aktualności rekordu

Sprawdzanie aktualności rekordu

Gdy klient posiada dany zasób w cache’u, a następnie wykonuje zapytanie o ten sam zasób, konieczne jest sprawdzenie jego aktualności. Jest to wykonywane za pomocą zapytań warunkowych. Polegają one na wysłaniu pytania o zasób, jednak zasób ten zostanie przesłany z powrotem tylko w przypadku spełnienia określonych warunków. W przypadku sprawdzania aktualności rekordu stosuje się dwa podejścia: Sprawdzenie po dacie ważności zasobu Sprawdzenie po „sumie kontrolnej” zasobu Oba sposoby zostaną później szerzej omówione. Serwer może odpowiedzieć na takie warunkowe zapytanie na następujące…

Read More Read More

Aktualność obiektu w cache

Aktualność obiektu w cache

Obiekt w cache możemy nazwać aktualnym, jeżeli nie minął jeszcze jego termin ważności. Czas ten jest liczony od momentu pobrania zasobu do momentu określonego przez nagłówki takie jak Expires lub Cache-Control. Jeżeli serwer chce spowodować unieważnienie zachowanego obiektu, powinien on wysłać datę ważności z przeszłości. Dzięki temu podczas najbliższego sprawdzania poprawności lub pobierania zawartości zasobu zostanie on bezwzględnie odświeżony (pobrany ponownie z serwera). Do momentu aż minie czas ważności danego obiektu wszelkie żądania jego pobrania spowodują skorzystanie z zapamiętanej w cache wartości….

Read More Read More

Cache HTTP

Cache HTTP

Główną metodą pracy z użyciem HTTP jest pobieranie oraz zapisywanie zasobów z serwera. Najczęściej odczytujemy informacje, jednak z tym może wiązać się pewien problem. Pobieranie treści z serwera zawsze trwa pewien czas, w szczególności, jeżeli potrzebne jest przesłanie dużej ilości informacji. Może to powodować problemy z wydajnością zarówno ze strony klienta jak i serwera. Klient musi pobierać wiele różnych informacji, aby je wykorzystać (np. zaprezentować). Z kolei serwer w przypadku podłączenia się do niego wielu klientów, może mieć problem z…

Read More Read More

Metoda CONNECT

Metoda CONNECT

Za pomocą tego zapytania można połączyć się do serwera pośredniego w drodze do serwera docelowego. Jest to niezbędne, gdy dwa węzły nie są bezpośrednio ze sobą powiązane (np. istnieje zapora sieciowa). Stwarza to wrażenie bezpośredniego połączenia. Często są one wykorzystywane do tworzenia połączenia pomiędzy adresami, które są połączone poprzez jedno lub wiele proxy. Taka komunikacja może być zabezpieczona za pomocą TLS (metoda szyfrowania połączenia). Wysyłając zapytanie CONNECT należy tylko przekazać docelowy adres, do którego chcemy się połączyć. CONNECT example.com:80 HTTP/1.1 Host: example.com:80…

Read More Read More

Metoda TRACE

Metoda TRACE

Metoda ta jest używana do zdalnego śledzenia wywołań wszelkich innych metod HTTP. Zapytanie powinno odwzorowywać badaną wiadomość z wyłączeniem pewnych wrażliwych pól (np. autoryzacyjnych). Odpowiedź powinna: mieć typ: message/http, odesłać z powrotem niezmienione, wszystkie nagłówki zapytania, nie odsyłać treści wiadomości dodać nagłówek diagnostyczny. Wiadomość ta może zostać wysłana zarówno do adresata, jak i serwerów pośrednich (np. proxy). Z tego też powodu, nie powinny być za jej pośrednictwem przesyłane żadne wrażliwe informacje w nagłówkach zapytania (takiej jak ciasteczka lub dane autoryzacyjne). TRACE…

Read More Read More

Metoda DELETE

Metoda DELETE

Metoda DELETE oznacza żądanie skasowania adresu URL, do którego odwołujemy się w zapytaniu. Nie musi to oznaczać skasowania zasobu (choć może), ale musi się wiązać z dezaktywacją adresu URL do niego prowadzącego. Zasób nie musi być kasowany, gdy jest wskazywany również przez inne adresy. Metoda DELETE jest najczęściej używana w połączeniu z PUT z uwagi na to, że operują one na unikalnym adresie, który identyfikuje używany przez nas zasób. Jeżeli operacja kasowania odnośnika powiedzie się, powinien zostać zwrócony rezultat 202…

Read More Read More

Metoda PUT

Metoda PUT

Metoda PUT służy do zachowania obiektu przekazywanego w treści zapytania pod wskazanym adresem URL. W przypadku gdy pod tym adresem istniał już zasób, powinien on zostać nadpisany. Zwracany jest wtedy rezultat 200 (OK) lub 204 (No Content), gdy nastąpiło nadpisanie pustym zbiorem. Jeżeli zasób nie istniał, to powinien zostać utworzony pod podanym adresem. Zwracany jest wtedy rezultat 201 (Created) PUT /article/1234 HTTP/1.1 PUT /article/1234 HTTP/1.1 { “color”: “red” } Gdy metoda PUT zakończy się powodzeniem, wykonanie metody GET dla tego…

Read More Read More

Metoda HEAD

Metoda HEAD

Metoda HEAD działa tak samo jak metoda GET. Nie zwraca ona jednak treści wiadomości, a jedynie nagłówki. Powinny one być identyczne z tymi zwracanymi przez metodę GET o takich samych parametrach. Jedynym wyjątkiem są nagłówki mówiące o treści wiadomości takie jak: Content-Length, Content-Range, które mogą nie wystąpić w odpowiedzi w metodzie HEAD. Metoda GET Request Response GET /admin HTTP/1.1 Host: www.example.com HTTP/1.1 200 OK Date: Mon, 18 Aug 2012 22:44:11 GMT Content-Type: text/html Content-Length: 123<html> … </html> Metoda HEAD Request…

Read More Read More