Zawartość

    Odpowiedź serwera 100 Continue

    HTTP Status Code 100 (Continue)

    HTTP status code 100 (Continue) jest tymczasowym kodem, który wskazuje, że początkowa część żądania została pomyślnie odebrana przez serwer, a klient może kontynuować wysyłanie ciała żądania. Kod ten jest szczególnie przydatny w przypadku przesyłania dużych ilości danych, co pozwala na optymalizację pracy z siecią.

    100 - Continue

    Podstawowe pojęcia

    • Co to jest status kod 100 (Continue) - jest to informacja dla klienta, że serwer gotowy jest na dalsze przyjęcie danych.
    • Kiedy i dlaczego używa się tego kodu - stosuje się go głównie przy wysyłaniu dużych plików lub danych, gdyż pozwala na wczesne potwierdzenie, że nagłówki są poprawne i serwer jest gotowy na dalszą komunikację.

    Praktyczne przykłady użycia

    Przykład 1: Wysyłanie dużego pliku

    Wyobraźmy sobie sytuację, w której klient wysyła dużą paczkę danych, na przykład plik wideo. Klient najpierw wysyła nagłówki, a w odpowiedzi otrzymuje kod 100 (Continue). Oznacza to, że serwer akceptuje dane i klient może rozpocząć przesyłanie pliku. Dzięki temu unika się sytuacji, w której klient przesyła ogromny plik, a serwer odrzuca go z powodu błędu w nagłówkach.

    Przykład 2: Sprawdzanie nagłówków przed wysłaniem danych

    W przypadku, gdy nagłówki requestu są niepoprawne lub niekompletne, serwer może odpowiedzieć kodem 100, mówiąc klientowi, że może wysłać dane. W przeciwnym razie klient nie traci czasu na przesyłanie danych, które mogą być odrzucone. Zapewnia to efektywność i oszczędność zasobów.

    Jak naprawić błędy związane z kodem 100 (Continue)

    Przykład na Python

    Jeśli serwer nie zwraca kodu 100, może to oznaczać, że nie obsługuje on tego statusu. W przypadku użycia biblioteki requests w Pythonie, można to obsłużyć w następujący sposób:

    import requests
    
    response = requests.post('https://example.com/upload', data=large_file, allow_redirects=False)
    if response.status_code == 100:
        print('Serwer akceptuje dane.')
    else:
        print('Błąd: ', response.status_code)
    

    Przykład na Java

    W Javie, używając HttpURLConnection, można skonfigurować klienta do obsługi kodu 100. Oto prosty przykład:

    import java.net.HttpURLConnection;
    import java.net.URL;
    
    URL url = new URL("https://example.com/upload");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    connection.setRequestProperty("Expect", "100-continue");
    
    int responseCode = connection.getResponseCode();
    if (responseCode == HttpURLConnection.HTTP_CONTINUE) {
        System.out.println("Serwer akceptuje dane.");
    } else {
        System.out.println("Błąd: " + responseCode);
    }
    

    Przykład na JavaScript

    W JavaScript, można użyć XMLHttpRequest lub fetch. Poniżej przedstawiamy przykład obsługi kodu 100:

    let xhr = new XMLHttpRequest();
    xhr.open("POST", "https://example.com/upload", true);
    xhr.setRequestHeader("Expect", "100-continue");
    
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4) {
            if (xhr.status === 100) {
                console.log("Serwer akceptuje dane.");
            } else {
                console.log("Błąd: " + xhr.status);
            }
        }
    };
    xhr.send(largeFile);
    

    Najlepsze praktyki

    • Stosuj status kod 100 tylko wtedy, gdy wysyłasz duże pliki lub dane.
    • Upewnij się, że serwer jest odpowiednio skonfigurowany do obsługi tego kodu.
    • Monitoruj odpowiedzi serwera i odpowiednio reaguj na błędy.

    Często zadawane pytania

    1. Jakie zachowanie oczekiwane jest od klienta przy otrzymaniu kodu 100? Klient powinien kontynuować przesyłanie danych.
    2. Co zrobić, jeśli serwer nie obsługuje kodu 100? Należy dostosować logikę klienta do obsługi błędów oraz zrezygnować z oczekiwania na kod 100.
    Kod Statusu Opis
    100 Continue - Serwer akceptuje dalsze dane.
    200 OK - Żądanie zostało przetworzone pomyślnie.
    400 Bad Request - Błąd w żądaniu.