Zawartość

    Odpowiedź serwera 204 No Content

    Charakterystyka kodu statusu 204

    Kod statusu HTTP 204 (No Content) odgrywa kluczową rolę w rozwoju aplikacji webowych. Umożliwia serwerom informowanie klientów, że żądanie zostało pomyślnie przetworzone, ale nie ma danych do przesłania w odpowiedzi. W tej sekcji omówimy definicję tego statusu, kiedy go używać oraz różnice w porównaniu do innych kodów statusu, takich jak 200.

    **204 - No Content**

    Definicja statusu 204

    Status 204 oznacza, że żądanie zostało zrealizowane, ale serwer nie przesyła żadnej treści w odpowiedzi. Jest to użyteczne w sytuacjach, gdy klient nie potrzebuje dodatkowych danych po wykonaniu akcji.

    Kiedy używać kodu statusu 204

    • Gdy zasób został usunięty, a odpowiedź nie wymaga przesłania dodatkowych informacji.
    • Gdy aktualizacje danych nie wymagają przesyłania nowych danych do klienta.
    • Gdy potwierdzenie wykonania akcji nie wymaga żadnej dodatkowej treści.

    Różnice w stosunku do innych kodów statusu

    Kod statusu Opis
    200 Żądanie zakończone sukcesem, z odpowiedzią zawierającą treść.
    204 Żądanie zakończone sukcesem, bez przesyłania treści.
    404 Nie znaleziono zasobu, żądanie zakończone niepowodzeniem.

    Praktyczne przykłady użycia kodu statusu 204

    Przykład 1: Pomyślne wykonanie żądania bez zwracanych danych

    Scenariusz: Usunięcie zasobu. Po usunięciu zasobu nie jest wymagane przesyłanie dodatkowych danych.

    fetch('/api/resource/1', {
        method: 'DELETE'
    }).then(response => {
        if (response.status === 204) {
            console.log('Zasób został pomyślnie usunięty.');
        }
    });
    

    Przykład 2: Aktualizacja danych za pomocą żądania bez zwracania treści

    Scenariusz: Aktualizacja profilu użytkownika. Serwer może zwrócić status 204 po pomyślnym zaktualizowaniu danych.

    import requests
    
    response = requests.put('/api/user/profile', json={'name': 'Jan Kowalski'})
    if response.status_code == 204:
        print('Profil został pomyślnie zaktualizowany.')
    

    Przykład 3: Potwierdzenie wykonania zadania bez przesyłania danych

    Scenariusz: Potwierdzenie działań użytkownika, takich jak zapisanie ustawień.

    <?php
    $success = saveSettings($_POST);
    if ($success) {
        http_response_code(204);
    }
    ?>
    

    Błędy przy użyciu kodu statusu 204 i ich poprawa

    Ogólne błędy prowadzące do niewłaściwego użycia

    • Wysyłanie danych w odpowiedzi, mimo że 204 nie powinien ich zawierać.
    • Niewłaściwe stosowanie w sytuacjach, gdzie wymagane jest przesłanie treści.

    Poprawa w JavaScript

    fetch('/api/resource/1', {
        method: 'DELETE'
    }).then(response => {
        if (response.status === 204) {
            console.log('Zasób został pomyślnie usunięty.');
        } else {
            console.error('Wystąpił błąd: ' + response.statusText);
        }
    });
    

    Poprawa w Pythonie

    import requests
    
    response = requests.delete('/api/resource/1')
    if response.status_code == 204:
        print('Zasób został pomyślnie usunięty.')
    else:
        print('Błąd: ' + str(response.status_code))
    

    Poprawa w PHP

    <?php
    $success = deleteResource($resourceId);
    if ($success) {
        http_response_code(204);
    } else {
        http_response_code(400); // Błąd w przypadku niepowodzenia
    }
    ?>
    

    Porady dotyczące prawidłowego użycia kodu statusu 204

    • Projektując API, upewnij się, że odpowiedzi 204 nie zawierają treści.
    • Testuj różne scenariusze, aby zweryfikować, czy kod 204 jest zwracany w odpowiednich sytuacjach.
    ****

    Kod statusu 204 (No Content) jest użyteczny w wielu kontekstach, takich jak usuwanie zasobów czy aktualizowanie danych. Jego prawidłowe użycie przyczynia się do zwiększenia efektywności komunikacji między klientem a serwerem. Warto pamiętać o błędach, które mogą wystąpić przy jego użyciu, oraz o sposobach ich naprawy.

    ****