HTTPQUERY
Bahasa Indonesia

411 Length Required

Penggunaan

Ketika pesan kesalahan 411 Length Required diterima, permintaan harus dikirim ulang dengan menyertakan header Content-Length. Permintaan HTTP umumnya menggunakan header ini untuk menyatakan panjang badan pesan, meskipun tidak selalu. Sebagai contoh, ketika field header Transfer-Encoding disertakan dan disetel ke chunked, field header Content-Length tidak diperlukan.

Jika klien sedang mengirim aliran data dan status ini dikembalikan, data tersebut harus dikirim dalam blok-blok dengan ukuran yang dinyatakan.

Dampak SEO

Mesin pencari seperti Google tidak akan mengindeks URL dengan status respons 411 Length Required. URL yang sebelumnya terindeks akan dihapus dari hasil pencarian. Halaman yang mengembalikan kode ini tidak memboroskan anggaran perayapan.

Contoh

Klien mencoba mengirim sebuah berkas, tetapi server menolak permintaan tersebut dengan 411 Length Required karena panjang badan pesan tidak dinyatakan.

Permintaan

PUT /docs HTTP/1.1
Host: example.com
Content-Type: application/pdf

<PDF file included as message body>

Respons

HTTP/1.1 411 Length Required

Cara memperbaiki

Tambahkan header Content-Length dengan jumlah byte yang tepat dari badan permintaan. Sebagian besar pustaka klien HTTP menghitung nilai ini secara otomatis saat mengirim string atau buffer. Pastikan pustaka tersebut tidak menghapus header itu atau menyetel nilainya menjadi nol.

Ketika permintaan menggunakan Transfer-Encoding chunked, berarti server target tidak menerima badan chunked. Buffer dahulu seluruh payload, ukur panjangnya dalam byte, lalu kirim badan tersebut dengan header Content-Length.

Proxy dan firewall terkadang menghapus atau mengubah header saat transit. Jika klien mengirim Content-Length dengan benar tetapi server tetap mengembalikan 411, periksa permintaan tersebut di sisi server untuk memastikan header itu tiba dalam keadaan utuh.

Pada curl, flag -d menyetel Content-Length secara otomatis. Untuk Transfer-Encoding: chunked dengan curl, gunakan -H “Transfer-Encoding: chunked”, tetapi hanya bila server mendukung transfer chunked.

Di sisi server, status ini kerap dikembalikan oleh konfigurasi yang ketat atau server HTTP/1.0 lama yang tidak mendukung pengodean chunked. Administrator server menetapkan kebijakan ini secara sengaja, dan perbaikannya selalu ada di sisi klien.

411 pada perkakas pengujian API

Perkakas seperti Postman dan curl menangani header Content-Length secara otomatis untuk sebagian besar jenis permintaan. Kesalahan 411 di Postman umumnya terjadi saat mengirim badan kosong pada permintaan POST atau PUT tanpa memilih tipe badan. Memilih format badan (raw, form-data, atau x-www-form-urlencoded) membuat Postman menyetel header Content-Length dengan benar.

Referensi kode

.NET

HttpStatusCode.LengthRequired

Rust

http::StatusCode::LENGTH_REQUIRED

Rails

:length_required

Go

http.StatusLengthRequired

Symfony

Response::HTTP_LENGTH_REQUIRED

Python3.5+

http.HTTPStatus.LENGTH_REQUIRED

Java

java.net.HttpURLConnection.HTTP_LENGTH_REQUIRED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_LENGTH_REQUIRED

Angular

@angular/common/http/HttpStatusCode.LengthRequired