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