Isi

    Respons server 416 Range Not Satisfiable

    HTTP Status Code 416 (Range Not Satisfiable)

    HTTP status code 416 menunjukkan bahwa server tidak dapat memenuhi permintaan rentang data yang diminta oleh klien. Kondisi ini terjadi ketika klien meminta bagian dari sumber daya, namun rentang yang ditentukan melebihi data yang tersedia. Dalam artikel ini, kita akan membahas penyebab munculnya kode status ini, contoh praktis, serta cara memperbaiki kesalahan pada berbagai bahasa pemrograman.

    416 - Range Not Satisfiable

    Penyebab Munculnya Kode Status 416

    • Rentang yang Salah Ditentukan

      Klien dapat melakukan kesalahan saat menentukan rentang, seperti meminta rentang yang melebihi ukuran file yang ada. Misalnya, jika file memiliki ukuran 1000 byte dan klien meminta byte 1001-2000, server tidak dapat memproses permintaan tersebut.

    • Data Tidak Tersedia di Server

      Situasi di mana sumber daya telah dihapus atau dimodifikasi dapat menyebabkan permintaan rentang lebih besar daripada data yang tersedia. Contohnya, jika file telah dihapus dan klien mencoba meminta bagian dari file tersebut.

    • Header yang Salah

      Pengaturan header Range yang tidak benar dapat menyebabkan kesalahan. Jika header tidak sesuai dengan format yang diharapkan, server tidak akan dapat memahami permintaan dengan benar.

    Contoh Praktis

    1. Contoh dengan File Audio

      Klien meminta rentang yang melebihi panjang audio. Misalnya, permintaan untuk rentang 1000-2000 byte pada file audio yang hanya memiliki panjang 1500 byte. Respons server akan menunjukkan status 416.

    2. Contoh dengan Gambar

      Permintaan untuk bagian dari gambar yang telah diubah. Jika gambar telah diperkecil, klien yang tidak mengetahui ukuran baru akan meminta rentang yang tidak valid.

    3. Contoh dengan File Teks

      Jika klien mengajukan permintaan untuk rentang 100-200 dari file teks yang hanya memiliki 150 byte, server akan mengembalikan respon dengan status 416.

    Memperbaiki Kesalahan 416 pada Berbagai Bahasa Pemrograman

    Python (Menggunakan Library Requests)

    
    import requests
    
    url = 'http://example.com/file.mp3'
    headers = {'Range': 'bytes=1000-2000'}
    response = requests.get(url, headers=headers)
    
    if response.status_code == 416:
        print("Rentang yang diminta tidak dapat dipenuhi.")
    

    JavaScript (Menggunakan Fetch API)

    
    fetch('http://example.com/file.mp3', {
        method: 'GET',
        headers: { 'Range': 'bytes=1000-2000' }
    }).then(response => {
        if (response.status === 416) {
            console.log("Rentang yang diminta tidak dapat dipenuhi.");
        }
    });
    

    PHP (Menggunakan cURL)

    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://example.com/file.txt");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Range: bytes=100-200"));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    
    if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 416) {
        echo "Rentang yang diminta tidak dapat dipenuhi.";
    }
    curl_close($ch);
    
    Penyebab Keterangan
    Rentang yang Salah Ditentukan Klien meminta rentang di luar ukuran file yang ada.
    Data Tidak Tersedia Sumber daya yang diminta telah dihapus atau diubah.
    Header yang Salah Header Range yang tidak sesuai menyebabkan kesalahan.

    Kode status 416 mengindikasikan masalah dengan ketidaktersediaan rentang data yang diminta. Untuk menghindari status ini, penting untuk menentukan rentang dengan benar dan menangani kemungkinan kesalahan di sisi klien.