HTTPQUERY
Bahasa Indonesia

510 Not Extended

Penggunaan

Status code 510 Not Extended merupakan bagian dari HTTP Extension Framework. IANA kini mencantumkan 510 sebagai “Not Extended (OBSOLETED)” dan spesifikasinya telah dipindahkan ke status Historic, yang berarti protokol tersebut tidak lagi direkomendasikan untuk digunakan.

Error ini terjadi ketika klien diwajibkan menggunakan permintaan HTTP yang diperluas tetapi tidak melakukannya. Respons server menyertakan informasi tentang cara memperluas permintaan tersebut, meskipun format persisnya tidak ditentukan dalam protokol.

Dampak SEO

Mesin pencari memperlakukan 510 sama seperti error server 5xx lainnya. Kegagalan yang terus-menerus menurunkan laju crawl dan pada akhirnya menghapus URL yang terdampak dari indeks.

Contoh

Klien mengirim permintaan yang memerlukan ekstensi HTTP wajib. Server merespons dengan 510 Not Extended karena permintaan tersebut tidak menyertakan prefiks M- dan deklarasi ekstensi yang diperlukan.

Permintaan

GET /resource HTTP/1.1
Host: example.com

Respons

HTTP/1.1 510 Not Extended
Content-Type: text/html; charset=UTF-8
Content-Length: 199

<html>
  <head>
    <title>Not Extended</title>
  </head>
  <body>
    <p>The request requires a mandatory HTTP
    extension. Resubmit with the required
    extension headers.</p>
  </body>
</html>

Cara memperbaiki

Server memerlukan sebuah ekstensi HTTP yang tidak disertakan klien dalam permintaan. Body respons 510 menjelaskan ekstensi mana yang dibutuhkan.

Di sisi klien:

Di sisi server:

Status code ini sangat jarang dijumpai dalam praktik. HTTP Extension Framework telah dipindahkan ke status Historic dan nyaris tidak pernah diadopsi. Sebagian besar API dan aplikasi web modern menangani negosiasi fitur melalui header kustom, parameter query, atau pemversian API, bukan melalui mekanisme Extension Framework.

510 pada service worker

Service worker yang mencegat permintaan fetch terkadang memunculkan 510 ketika worker tersebut tidak memiliki ekstensi atau kemampuan yang diminta oleh origin. Perbaikannya sama: periksa body respons untuk mengetahui ekstensi yang hilang dan perbarui handler fetch service worker agar menyertakan header yang diperlukan.

Referensi kode

.NET

HttpStatusCode.NotExtended

Rust

http::StatusCode::NOT_EXTENDED

Rails

:not_extended

Go

http.StatusNotExtended

Symfony

Response::HTTP_NOT_EXTENDED

Python3.5+

http.HTTPStatus.NOT_EXTENDED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_NOT_EXTENDED

Angular

@angular/common/http/HttpStatusCode.NotExtended