Obsah

    Odpověď serveru 206 Partial Content

    HTTP Status Code 206 (Partial Content)

    HTTP status code 206 (Partial Content) označuje, že server úspěšně zpracoval částečný požadavek klienta a vrací pouze požadovanou část zdroje. Tento kód se používá v situacích, kdy klient vyžaduje pouze část souboru, což je užitečné při streamování dat nebo při stahování velkých souborů.

    206 - Partial Content

    Definice kódu 206 (Partial Content)

    • Popis kódu a jeho účel: Kód 206 informuje klienta, že server splnil jeho požadavek, ale pouze částečně. Tento kód je klíčový pro efektivní přenos dat, zejména při práci s velkými soubory.
    • Příklady situací, kdy se používá 206:
      • Při stahování velkých souborů, kde uživatel může chtít obnovit stahování od určitého místa.
      • Při streamování médií, kdy se data přenášejí po částech, aby se minimalizovalo zpoždění.

    Praktické příklady aplikace statusu 206

    Použití při stahování velkých souborů

    Klient může požádat server o část souboru pomocí hlavičky Range. To umožňuje stahování pouze požadovaných dat, což šetří šířku pásma a zrychluje proces.

    • Příklad požadavku s použitím hlavičky Range:
      GET /soubor.zip HTTP/1.1
      Host: example.com
      Range: bytes=0-499

    Použití při streamování videa a audia

    Při streamování médií server posílá data po částech, což umožňuje uživatelům začít sledovat nebo poslouchat obsah, aniž by museli čekat na stažení celého souboru. Server zpracovává požadavky na různé části souboru a vrací je s kódem 206.

    Použití v CDN (Content Delivery Network)

    CDN optimalizují proces stahování tím, že umožňují serverům vracet částečné obsahy, což zrychluje přenos dat a zlepšuje uživatelskou zkušenost. Kód 206 se používá k efektivnímu doručení obsahu pro různé geografické oblasti.

    Příklady požadavků s použitím hlavičky Range

    Formát hlavičky Range

    Hlavička Range se používá k specifikaci, jaká část souboru má být vrácena. Formát této hlavičky je následující:

    Range: bytes=start-end

    Příklady požadavků na získání určitých bajtů souboru

    • Požadavek na první 500 bajtů:
      GET /soubor.zip HTTP/1.1
      Host: example.com
      Range: bytes=0-499
    • Požadavek na bajty od 500 do 999:
      GET /soubor.zip HTTP/1.1
      Host: example.com
      Range: bytes=500-999

    Odpověď serveru s kódem 206 a příslušnými hlavičkami

    Příklad odpovědi serveru, který vrací částečný obsah, může vypadat takto:

    HTTP/1.1 206 Partial Content
    Content-Range: bytes 0-499/1234
    Content-Length: 500

    Zpracování kódu 206 v různých programovacích jazycích

    PHP

    V PHP lze částečné stahování souboru implementovat takto:

    $filename = 'soubor.zip';
    $filesize = filesize($filename);
    
    header('HTTP/1.1 206 Partial Content');
    header('Content-Type: application/zip');
    header("Content-Range: bytes 0-$filesize/$filesize");
    readfile($filename);
    

    Python

    V Pythonu, pomocí Flask, lze zpracovat částečné požadavky takto:

    from flask import Flask, request, Response
    
    app = Flask(__name__)
    
    @app.route('/soubor')
    def download_file():
        range_header = request.headers.get('Range', None)
        if range_header:
            start, end = map(int, range_header.replace('bytes=', '').split('-'))
            # logika pro čtení souboru
            return Response(data, status=206)
    

    Node.js

    V Node.js lze použít Express pro zpracování požadavků s hlavičkou Range:

    const express = require('express');
    const fs = require('fs');
    const app = express();
    
    app.get('/soubor', (req, res) => {
        const range = req.headers.range;
        if (range) {
            // logika pro zpracování souboru
            res.writeHead(206, {'Content-Range': 'bytes 0-499/1234'});
            res.end(data);
        }
    });
    

    Možné chyby a jejich odstranění

    • Chyby spojené s nekorektními hlavičkami Range: Je důležité zajistit, aby hlavička Range byla správně naformátována a aby server správně zpracoval všechny požadavky.
    • Jak se vyhnout chybám při implementaci částečného stahování: Testování různých scénářů a důkladné ladění kódu jsou klíčové pro úspěšnou implementaci.
    • Doporučení pro testování a odladění: Používejte nástroje pro sledování požadavků a odpovědí HTTP, abyste zajistili správné fungování.