Innehåll

    Serversvar 103 Early Hints

    Vad är statuskod 103 (Early Hints)

    Statuskod 103 (Early Hints) är en ny HTTP-statuskod som gör det möjligt för servrar att skicka preliminära hintar till klienter om resurser som kan behövas för att bearbeta en begäran. Genom att möjliggöra detta kan webbläsare börja ladda resurser innan servern har slutfört behandlingen av den huvudsakliga begäran, vilket potentiellt kan påskynda sidladdningen avsevärt.

    103 - Early Hints

    Funktion och syfte med statuskod 103

    Statuskod 103 syftar till att förbättra prestandan för webbapplikationer genom att ge webbläsare tidig information om vilka resurser som kan behövas. Detta innebär att resurser som stilar, skript och bilder kan börja laddas medan servern fortfarande arbetar med att bearbeta den faktiska begäran.

    Tillämpning av statuskod 103 i praktiken

    Statuskod 103 kan utnyttjas för att optimera sidladdning på olika sätt:

    • Exempel: Förhandsladdning av typsnitt och stilar

      Genom att skicka hintar om typsnitt och CSS-filer kan webbläsaren börja ladda dessa resurser innan hela sidan är klar.

    • Exempel: Angivande av cachade resurser

      Servern kan informera om resurser som kan cachas, vilket minskar framtida laddningstider.

    Interaktion med webbläsare och klienter

    Webbläsare hanterar statuskod 103 på olika sätt. De flesta moderna webbläsare har stöd för denna kod, vilket gör att utvecklare kan dra nytta av dess fördelar.

    Stöd för statuskod 103 i olika webbläsare

    Webbläsare Stöd för statuskod 103
    Chrome Ja
    Firefox Ja
    Safari Ja
    Edge Ja

    Exempel på användning

    Här är exempel på hur statuskod 103 kan implementeras på olika serverplattformar:

    Exempel på implementation med Node.js

    
    const http = require('http');
    
    const server = http.createServer((req, res) => {
        res.writeHead(103, {'Link': '; rel=preload; as=style'});
        res.writeHead(200, {'Content-Type': 'text/'});
        res.end('<>Hello World');
    });
    
    server.listen(3000);
    

    Exempel på implementation med Python (Flask)

    
    from flask import Flask, Response
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        headers = {'Link': '; rel=preload; as=style'}
        return Response('<>Hello World', status=200, headers=headers)
    
    if __name__ == '__main__':
        app.run()
    

    Exempel på implementation med PHP

    
    <?php
    header("Link: ; rel=preload; as=style", false);
    header("HTTP/1.1 200 OK");
    ?>
    <>
    
        
    
    Hello World
    
    

    Potenitala problem och lösningar

    Det kan uppstå problem relaterade till statuskod 103, inklusive:

    • Fel: Klienten stöder inte statuskod 103

      Om en klient inte stöder statuskod 103 kan servern implementera en reservplan som skickar de nödvändiga resurserna i en traditionell svar.

    Undvikande av felaktig användning av statuskod 103

    Några vanliga misstag som bör undvikas inkluderar:

    1. Att skicka statuskod 103 utan att följa upp med en komplett respons.
    2. Att använda statuskod 103 för resurser som inte är kritiska för sidladdning.

    Inställning av servern för att stödja statuskod 103

    För att aktivera stöd för statuskod 103 på webbservrar som Nginx och Apache krävs vissa konfigurationer:

    • Nginx: Använd add_header i din serverblockkonfiguration.
    • Apache: Använd Header set i din konfigurationsfil.

    Genom att följa dessa riktlinjer kan utvecklare effektivt implementera statuskod 103 för att förbättra prestandan och användarupplevelsen på sina webbplatser.