Obsah

    Odpověď serveru 100 Continue

    HTTP status kód 100 (Continue)

    HTTP status kód 100 (Continue) je dočasný kód, který indikuje, že počáteční část požadavku byla úspěšně přijata. Tento kód dává klientovi možnost pokračovat v odesílání těla požadavku. Jeho použití je výhodné zejména při práci s velkými objemy dat, kdy klient může optimalizovat proces přenosu.

    100 - Continue

    Hlavní pojmy

    • Co je status kód 100 (Continue): Tento kód signalizuje, že server přijal hlavičky požadavku a je připraven přijmout jeho tělo.
    • Kdy a proč se tento kód používá: Používá se v situacích, kdy jsou odesílány velké objemy dat, což umožňuje klientovi vyhnout se přenosu dat, pokud by server neměl zájem o pokračování.

    Praktické příklady použití

    Příklad 1: Odeslání velkého souboru

    Při odesílání velkého souboru, například videa, klient nejprve odešle hlavičky požadavku. Pokud server vrátí status kód 100, klient začne odesílat tělo požadavku. To minimalizuje čas, kdy by klient mohl ztratit spojení bez odeslání dat.

    • Přednosti použití tohoto kódu:
      • Ušetření šířky pásma, pokud server odmítne požadavek.
      • Zrychlení procesu nahrávání souborů.

    Příklad 2: Ověření hlaviček před odesláním dat

    Pokud klient odešle hlavičky, které neodpovídají očekáváním serveru, může server vrátit status kód 100, což umožňuje klientovi vyhnout se zbytečnému přenosu dat. Tímto způsobem se šetří čas a prostředky.

    Jak opravit chyby spojené s kódem 100 (Continue)

    Příklad na Python

    Pokud server nevrátí status kód 100, klient by měl být schopen správně zpracovat tuto situaci. Například při použití knihovny requests v Pythonu může být implementace následující:

    import requests
    
    response = requests.post('http://example.com/upload', data=open('large_file.txt', 'rb'), headers={'Expect': '100-continue'})
    
    if response.status_code == 100:
        print("Server je připraven na odeslání dat.")
    

    Příklad na Java

    V Javě, při použití HttpURLConnection, může klient nastavit očekávání:

    HttpURLConnection connection = (HttpURLConnection) new URL("http://example.com/upload").openConnection();
    connection.setRequestMethod("POST");
    connection.setRequestProperty("Expect", "100-continue");
    
    if (connection.getResponseCode() == 100) {
        // Pokračujte s odesláním dat
    }
    

    Příklad na JavaScript

    Při práci s kódem 100 v prohlížeči pomocí XMLHttpRequest nebo fetch může být implementace následující:

    fetch('http://example.com/upload', {
        method: 'POST',
        headers: {
            'Expect': '100-continue'
        },
        body: largeFile
    }).then(response => {
        if (response.status === 100) {
            // Pokračujte s odesláním dat
        }
    });
    

    Nejlepší praktiky

    • Doporučení pro použití status kódu 100:
      • Vždy zkontrolujte, zda server podporuje tento kód před jeho použitím.
      • Optimalizujte přenos dat pro velké soubory, abyste ušetřili šířku pásma.
    • Jak se vyhnout problémům s implementací:
      • Uvádějte správné hlavičky požadavku.
      • Testujte chování serveru v různých scénářích.

    Často kladené otázky

    1. Jaké chování se očekává od klienta při obdržení kódu 100?

      Klient by měl pokračovat v odesílání dat, protože server je připraven je přijmout.

    2. Co dělat, pokud server nepodporuje kód 100?

      Pokud server tento kód nepodporuje, klient by měl odeslat data bez očekávání a zpracovat odpověď serveru podle standardních postupů.

    Situace Akce klienta Očekávaná odpověď serveru
    Odesílání velkého souboru Odeslat hlavičky a čekat na kód 100 100 (Continue)
    Neplatné hlavičky Odeslat hlavičky a čekat na kód 100 400 (Bad Request)