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.
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
- 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.
- 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) |