Zawartość

    Odpowiedź serwera 300 Multiple Choices

    HTTP Status 300 (Multiple Choices)

    Status kod HTTP 300 (Multiple Choices) wskazuje, że dla żądanego zasobu dostępnych jest kilka opcji. Oznacza to, że serwer może dostarczyć klientowi różne warianty zasobu, które odpowiadają jego zapytaniu. W praktyce, status ten jest użyteczny w wielu scenariuszach, takich jak różne formaty mediów, lokalizacja treści lub różne typy danych.

    300 - Multiple Choices

    Przykłady użycia statusu 300

    • Scenariusz z wieloma wersjami tego samego zasobu:

      Na przykład, zapytanie o obraz, dla którego dostępne są różne formaty (JPEG, PNG, GIF). W tym przypadku serwer zwraca status 300 i listę dostępnych formatów.

    • Scenariusz z lokalizacją treści:

      Przykład zapytania do strony internetowej, która obsługuje wiele języków (np. polski, angielski, hiszpański). Serwer zwraca status 300 z dostępnymi wariantami języków.

    • Scenariusz z różnymi typami treści:

      Na przykład, zapytanie do API, które może zwracać dane w różnych formatach (JSON, XML, CSV). W tym przypadku serwer zwraca status 300 z listą dostępnych formatów.

    Implementacja statusu 300 w różnych językach programowania

    Ważne jest, aby prawidłowo obsługiwać status 300 w różnych językach programowania. Poniżej przedstawiamy przykłady implementacji w JavaScript, Pythonie i PHP.

    1. JavaScript (Node.js):
      
      const express = require('express');
      const app = express();
      
      app.get('/resource', (req, res) => {
          const choices = [
              { format: 'image/jpeg', url: 'http://example.com/image.jpg' },
              { format: 'image/png', url: 'http://example.com/image.png' },
              { format: 'image/gif', url: 'http://example.com/image.gif' },
          ];
          res.status(300).json(choices);
      });
      
      app.listen(3000, () => console.log('Server running on port 3000'));
              
    2. Python (Flask):
      
      from flask import Flask, jsonify
      
      app = Flask(__name__)
      
      @app.route('/resource')
      def resource():
          choices = [
              {'format': 'image/jpeg', 'url': 'http://example.com/image.jpg'},
              {'format': 'image/png', 'url': 'http://example.com/image.png'},
              {'format': 'image/gif', 'url': 'http://example.com/image.gif'},
          ]
          return jsonify(choices), 300
      
      if __name__ == '__main__':
          app.run(port=5000)
              
    3. PHP:
      
      <?php
      header("HTTP/1.1 300 Multiple Choices");
      $choices = [
          ['format' => 'image/jpeg', 'url' => 'http://example.com/image.jpg'],
          ['format' => 'image/png', 'url' => 'http://example.com/image.png'],
          ['format' => 'image/gif', 'url' => 'http://example.com/image.gif'],
      ];
      echo json_encode($choices);
      ?>
              

    Przykładowa tabela dostępnych opcji

    Format URL
    JPEG http://example.com/image.jpg
    PNG http://example.com/image.png
    GIF http://example.com/image.gif

    Status kod 300 (Multiple Choices) jest przydatny do dostarczania klientowi informacji o dostępnych opcjach zasobu. Prawidłowe zarządzanie tym kodem może znacznie poprawić doświadczenie użytkowników oraz zminimalizować ewentualne zamieszanie.