304 Nie zmodyfikowano

Czym jest HTTP 304 Not Modified, dlaczego jest kodem 3xx, ale nie przekierowaniem, jak działają ETag i Last-Modified oraz dlaczego może pośrednio poprawiać efektywność crawlowania na dużych witrynach bez wpływu na rankingi.

Opublikowano po raz pierwszy: 3 lip 2026 · Ostatnia aktualizacja: 8 sie 2026 · Advanced
Języki
1 sygnał dowodowy na tej stronie

HTTP 304 Not Modified jest odpowiedzią na warunkowe żądanie GET lub HEAD, którego warunek ocenia się jako fałszywy — takie żądanie w innym razie otrzymałoby 200. To odpowiedź klasy 3xx, która nie jest przekierowaniem — nie ma nagłówka Location ani, zgodnie ze specyfikacją, żadnego ciała. Warunkowe stają się żądania GET/HEAD z If-None-Match (dopasowanym do ETag) lub If-Modified-Since (dopasowanym do Last-Modified); druga wizyta jest typowym przykładem, a nie regułą protokołu. Gdy walidator nadal pasuje, serwer odpowiada 304 bez ciała, a klient używa kopii z cache. Dla SEO nie ma bezpośredniego wpływu na ranking — Google ma już treść, a 304 tylko potwierdza brak zmian, choć Search może nadal przeliczyć sygnały adresu URL. Prawdziwa korzyść to oszczędność zasobów: na dużych witrynach z wieloma rzadko zmieniającymi się adresami URL 304 pozwala crawlerom pominąć ponowne pobieranie niezmienionych stron, oszczędzając przepustowość i obliczenia, co według Google może pośrednio poprawiać efektywność crawlowania — nie obiecuje automatycznego przekazania budżetu crawlowania innym adresom URL. Google zaleca ETag jako podstawowy walidator, dopuszcza ustawienie obu i traktuje zmianę jako wystarczającą do unieważnienia cache dopiero wtedy, gdy treść faktycznie się zmieni, a nie przy zmianie daty praw autorskich w stopce. Nie myl 304 z 301/302/307/308, które przenoszą pod inny adres URL, ani z 204 No Content, który również nie ma ciała, ale dlatego, że rzeczywiście nie ma nic do wysłania.

TL;DR — 304 jest odpowiedzią na warunkowe GET/HEAD, którego warunek ocenia się jako fałszywy i które w przeciwnym razie otrzymałoby 200 (RFC 9110 §15.4.5). Należy do klasy 3xx, ale nie jest przekierowaniem: nie ma Location, nowego adresu URL ani — normatywnie — ciała („it cannot contain content or trailers” (tłumaczenie) „nie może zawierać treści ani trailerów”). Warunek przenosi If-None-Match (względem ETag) i/lub If-Modified-Since (względem Last-Modified); jeśli walidator nadal pasuje, serwer zwraca 304, a klient używa cache. Wpływ na SEO: brak bezpośredniego efektu rankingowego — Google ma już treść, choć Search może nadal przeliczyć sygnały adresu URL — oraz oszczędność zasobów na dużych witrynach (Google mówi, że może to pośrednio poprawiać efektywność crawlowania; nie obiecuje automatycznego przekazania budżetu crawlowania innym adresom URL). Infrastruktura crawlowania Google obsługuje oba walidatory i zaleca ETag jako podstawowy, bo nie niesie problemów z formatowaniem daty. Odróżnij go od 301/302/307/308 (które przenoszą adres URL) i od 204 (również bez ciała, ale dlatego, że rzeczywiście nie ma nic do wysłania).

Co 304 oznacza w specyfikacji

RFC 9110 (HTTP Semantics) §15.4.5 definiuje go precyzyjnie: “The 304 (Not Modified) status code indicates that a conditional GET or HEAD request has been received and would have resulted in a 200 (OK) response if it were not for the fact that the condition evaluated to false.” (tłumaczenie) „kod stanu 304 (Not Modified) oznacza, że otrzymano warunkowe żądanie GET lub HEAD, które dałoby odpowiedź 200 (OK), gdyby warunek nie został oceniony jako fałszywy.” To rzeczywisty, normatywny wyzwalacz — warunkowe GET/HEAD, którego warunek okazał się fałszywy i które w innym razie otrzymałoby 200. Mówiąc prosto: klient poprosił „daj mi tę stronę, ale tylko jeśli się zmieniła”, serwer ustalił, że się nie zmieniła, więc pomija ciało. „Druga wizyta” to codzienny przykład tego, jak żądanie staje się warunkowe (klient dołącza walidator zapisany z wcześniejszej odpowiedzi), ale nie jest regułą — specyfikacja nie wymaga wcześniejszej wizyty, tylko żądania warunkowego.

Evidence for this claim RFC 9110 defines 304 Not Modified as the response to a conditional GET or HEAD when the selected representation has not changed and says the response cannot contain content. Scope: HTTP semantics for 304 conditional responses. Confidence: high · Verified: IETF: RFC 9110 §15.4.5 — 304 Not Modified

Specyfikacja używa w tej sekcji nawet słowa „redirecting”: “the server is therefore redirecting the client to make use of that stored representation as if it were the content of a 200 (OK) response” (tłumaczenie) „serwer przekierowuje więc klienta, aby użył zapisanej reprezentacji tak, jakby była treścią odpowiedzi 200 (OK)” — ale czytaj uważnie: klient wraca do własnego cache, a nie pod inny adres URL. Nie ma nagłówka Location ani nowego adresu. To jedno zdanie odpowiada za większość zamieszania wokół pytania, czy 304 „jest przekierowaniem”. W sensie HTTP nie jest.

Liczą się jeszcze dwa punkty normatywne:

  • Nigdy żadnego ciała. RFC 9110: “A 304 response is terminated by the end of the header section; it cannot contain content or trailers.” (tłumaczenie) „odpowiedź 304 kończy się na końcu sekcji nagłówków; nie może zawierać treści ani trailerów.” 304 z ciałem narusza specyfikację, a część klientów może obsłużyć go nieprawidłowo. To twarda reguła, a nie kwestia stylu.
  • Niesie te same metadane, co 200. Serwer “MUST generate any of the following header fields that would have been sent in a 200 (OK) response to the same request: Content-Location, Date, ETag, and Vary” (tłumaczenie) „MUSI wygenerować wszystkie z tych pól nagłówka, które zostałyby wysłane w odpowiedzi 200 na to samo żądanie: Content-Location, Date, ETag i Vary”, a także Cache-Control i Expires, gdy mają zastosowanie. 304 to więc nagłówki odpowiedzi 200 bez ładunku.
Evidence for this claim A 304 response terminates after the header section and cannot contain content or trailers. Scope: conditional GET and HEAD Confidence: high · Verified: RFC 9110 §15.4.5: 304 Not Modified

Jak 304 naprawdę działa: żądania warunkowe

Serwer nigdy nie wysyła 304 bez powodu. To zawsze odpowiedź na żądanie warunkowe — takie, które klient uczynił warunkowym, dołączając walidator zapisany z poprzedniej odpowiedzi. Istnieją dwa walidatory.

ETag i If-None-Match

ETag (znacznik encji) to nieprzezroczysty token, który serwer dołącza do odpowiedzi 200 — pomyśl o nim jak o odcisku wersji dokładnej reprezentacji adresu URL. Przy następnym żądaniu tego adresu URL klient odsyła zapisaną wartość w nagłówku If-None-Match. Serwer porównuje wartości: jeśli bieżący ETag nadal pasuje, nic się nie zmieniło, więc zwraca 304; jeśli jest inny, zwraca świeże 200 z nową treścią i nowym ETag.

Last-Modified i If-Modified-Since

Alternatywa oparta na dacie: serwer wysyła znacznik czasu Last-Modified w odpowiedzi 200. Następnym razem klient odsyła go w nagłówku If-Modified-Since, a serwer porównuje daty — jeśli zasób nie zmienił się od tego czasu, zwraca 304. To prostsze, ale mniej precyzyjne (dokładność ogranicza się do znacznika czasu) i wrażliwe na dokładne formatowanie daty HTTP, co często powoduje błędy. Gdy obecne są oba walidatory, If-None-Match (ETag) ma pierwszeństwo przed If-Modified-Since.

Silne i słabe ETagi

ETag może być silny lub słaby, a różnica ma znaczenie. Zgodnie z wytycznymi MDN dotyczącymi żądań warunkowych: “strong validation consists of guaranteeing that the resource is, byte to byte, identical to the one it is compared to.” (tłumaczenie) „silna walidacja polega na zagwarantowaniu, że zasób jest bajt po bajcie identyczny z porównywanym.” Słaby ETag ma prefiks W/ (np. ETag: W/"abc123") i zapewnia tylko równoważność semantyczną — przykład MDN mówi, że strona różniąca się od innej wyłącznie datą w stopce albo inną reklamą może być uznana za identyczną przy słabej walidacji. Silne ETagi (bez prefiksu) są wymagane między innymi przy żądaniach zakresowych potrzebujących dopasowania bajtowego; słabe są użyteczne, gdy kompresja, białe znaki lub błahe różnice bez znaczenia merytorycznego nie powinny wymuszać pełnego pobrania. Pułapka praktyczna: jeśli ETag zmienia się przy każdym ponownym kompresowaniu gzip/Brotli albo różni się między serwerami za load balancerem, wywołasz niepotrzebne ponowne crawlowania — wybierz silny lub słaby wariant świadomie i utrzymuj wartość stabilną dla rzeczywiście niezmienionej treści.

Pełne uzgadnianie krok po kroku

  1. Pierwsze żądanie → serwer zwraca 200 OK z treścią oraz ETag i/lub Last-Modified.
  2. Klient zapisuje treść i te walidatory.
  3. Następne żądanie → klient wysyła If-None-Match i/lub If-Modified-Since z zapisanymi wartościami.
  4. Serwer decyduje: brak zmiany → 304 Not Modified, bez ciała, klient używa cache; zmiana → 200 OK z nowym ciałem i świeżymi walidatorami. Evidence for this claim RFC 9111 defines validation as checking whether a stored response remains current, typically with a conditional request that can receive 304 Not Modified. Scope: HTTP cache validation; it does not create a Search ranking benefit. Confidence: high · Verified: IETF: RFC 9111 §4.3 — Validation

Jeśli chcesz głębiej potraktować cache i walidatory jako dźwignię efektywności crawlowania — całą historię żądań warunkowych i ich związek z budżetem crawlowania — to temat towarzyszący; ten artykuł skupia się na kodzie stanu.

304 i SEO: brak wpływu na ranking, rzeczywisty wpływ na efektywność crawlowania

To cała historia SEO, węższa niż sugeruje wiele blogowych ogólników. 304 nie ma bezpośredniego wpływu na ranking, a własne wytyczne Google dotyczące wpływu kodów stanu na crawlowanie i indeksowanie ograniczają również wpływ na indeksowanie: Search może nadal przeliczać sygnały adresu URL, ale poza tym 304 nie zmienia sposobu indeksowania strony. Google ma treść z poprzedniego crawlowania; 304 tylko potwierdza, że nic się nie zmieniło, więc nadal jej używa. Zwracanie 304 nie daje premii rankingowej.

To, co 304 rzeczywiście daje, to oszczędność zasobów, która może pośrednio poprawić efektywność crawlowania. W grudniowym wpisie Search Central Google z 2024 roku o cache HTTP Gary Illyes ujął to jasno: “Especially if you have a large site with rarely-changing content under individual URLs, allowing caching locally may help your site be crawled more efficiently. Google’s crawling infrastructure supports heuristic HTTP caching as defined by the HTTP caching standard, specifically through the ETag response- and If-None-Match request header, and the Last-Modified response- and If-Modified-Since request header.” (tłumaczenie) „Szczególnie gdy masz dużą witrynę z rzadko zmieniającą się treścią pod poszczególnymi adresami URL, lokalne cache może pomóc w efektywniejszym crawlowaniu witryny. Infrastruktura crawlowania Google obsługuje heurystyczne cache HTTP zgodnie ze standardem cache HTTP, konkretnie przez nagłówek odpowiedzi ETag i nagłówek żądania If-None-Match oraz nagłówek odpowiedzi Last-Modified i nagłówek żądania If-Modified-Since.”

Ten sam wpis precyzyjnie wyjaśnia mechanizm 304 i to, dlaczego puste ciało jest sednem: jeśli ETag wysłany przez crawler “matches the current value the server generated, your server should return an HTTP 304 (Not modified) status code with no HTTP body” (tłumaczenie) „pasuje do bieżącej wartości wygenerowanej przez serwer, serwer powinien zwrócić kod 304 bez ciała HTTP”, a część „no HTTP body” ma znaczenie, ponieważ “your server doesn’t have to spend compute resources on actually generating content” i “doesn’t have to transfer the HTTP body” (tłumaczenie) „serwer nie musi zużywać zasobów obliczeniowych na faktyczne generowanie treści ani przesyłać ciała HTTP” — oszczędzasz obliczenia i przepustowość po obu stronach. Własne sformułowanie Google dotyczące korzyści jest warunkowe: te oszczędności zasobów mogą pośrednio poprawić efektywność crawlowania. To nie obietnica automatycznego przekazania zaoszczędzonego wysiłku na nowe lub zaktualizowane adresy URL — traktuj to jako mechanizm oszczędzania zasobów z prawdopodobnym, ale niegwarantowanym efektem ubocznym.

Dlaczego ma to większe znaczenie na dużych witrynach

Jeśli masz kilkaset stron, jest to w dużej mierze teoria — Google wygodnie przeczłapie całą witrynę niezależnie od tego. Korzyść rośnie wraz z rozmiarem: witryna z setkami tysięcy lub milionami adresów URL, z których wiele rzadko się zmienia, zyskuje materialnie, gdy crawlery mogą pominąć ponowne pobieranie wszystkich niezmienionych stron. Do takich odbiorców kierowany jest wpis Google i tak należy go uczciwie przedstawiać — nie sprzedawaj 304 jako taktyki dla małej witryny.

ETag czy Last-Modified i co liczy się jako „zmiana”

Google zaleca ETag jako podstawowy walidator: “We strongly recommend using ETag because it’s less prone to errors and mistakes (the value is not structured unlike the Last-Modified value).” (tłumaczenie) „Zdecydowanie zalecamy ETag, ponieważ jest mniej podatny na błędy i pomyłki — w przeciwieństwie do Last-Modified jego wartość nie ma struktury.” Ustawienie obu jest poprawne i zalecane. Jeśli używasz Last-Modified, data “must be formatted according to the HTTP standard” (tłumaczenie) „musi być sformatowana zgodnie ze standardem HTTP” — Google zaleca format “Weekday, DD Mon YYYY HH:MM:SS Timezone,” np. “Fri, 4 Sep 1998 19:15:56 GMT” — w przeciwnym razie może zostać po cichu zignorowana. Google sugeruje też ustawienie pola max-age w Cache-Control, aby pomóc crawlerom zdecydować, kiedy wykonać ponowne crawlowanie.

Evidence for this claim Google's crawler guidance recommends ETag because its opaque value avoids date-formatting errors, while also allowing both ETag and Last-Modified; this is Google-specific operational advice, not a change to HTTP validator semantics. Scope: HTTP cache validation Confidence: high · Verified: Crawling December: HTTP caching

To Ty decydujesz, co jest zmianą wartą unieważnienia cache, a rada Google brzmi, aby rezerwować to dla zmian merytorycznych: “Our recommendation is that you require a cache refresh on significant changes to your content; if you only updated the copyright date at the bottom of your page, that’s probably not significant.” (tłumaczenie) „Zalecamy wymagać odświeżenia cache przy istotnych zmianach treści; jeśli zaktualizowano tylko datę praw autorskich na dole strony, prawdopodobnie nie jest to istotne.”

Co Googlebot i Bingbot naprawdę robią z tym kodem

Nie każde żądanie crawlera jest warunkowe. Dokumentacja crawlowania Google zaznacza, że obsługa cache przez poszczególne crawlery i fetchery Google zależy od produktu, któremu służą — Googlebot obsługuje cache podczas ponownego crawlowania adresów URL dla Search, a niektóre inne fetchery Google obsługują je tylko w określonych warunkach — dlatego nawet przy poprawnie skonfigurowanych nagłówkach nie oczekuj, że 100% żądań będzie zawierać If-None-Match/If-Modified-Since. Bing również obsługuje żądania warunkowe. Jego crawler wspierał warunkowe GET (wysyłanie If-Modified-Since i, gdy dostępne, If-None-Match oraz akceptowanie 304 przy niezmienionej treści) co najmniej od wpisu Live Search z 2008 roku — choć Bing nie opublikował współczesnego odpowiednika wpisu Google z 2024 roku. Traktuj mechanizm jako ogólne zachowanie HTTP dotyczące obu wyszukiwarek.

Jak wdrożyć obsługę 304

  1. Wysyłaj walidatory przy 200. Skonfiguruj serwer, CDN lub aplikację tak, aby do zwykłych odpowiedzi 200 dołączała nagłówek ETag (zalecany) i/lub poprawnie sformatowany Last-Modified. Wiele serwerów i frameworków robi ETagi automatycznie dla plików statycznych; odpowiedzi dynamiczne zwykle wymagają jawnego włączenia.
  2. Obsługuj nagłówki warunkowe przy kolejnym żądaniu. Gdy żądanie przychodzi z If-None-Match/If-Modified-Since, porównaj je z bieżącym walidatorem i zwróć 304 (bez ciała), gdy nadal pasuje, albo świeże 200, gdy nie pasuje. Serwery plików statycznych często robią to za Ciebie; trasy aplikacji i workery brzegowe często nie, dopóki ich nie skonfigurujesz.
  3. Zdecyduj, co oznacza „zmiana” i utrzymuj ETag stabilny dla rzeczywiście niezmienionej treści — nie pozwalaj, aby ponowna kompresja lub różnice między serwerami zmieniały go bez potrzeby.
  4. Uważaj na klasyczne błędne konfiguracje:
    • Zawsze 200 — brak walidatorów, więc żadne żądanie nie jest warunkowe i nie ma oszczędności.
    • Niestabilne ETagi — wartość zmienia się, choć treść nie, na przykład przez load balancery lub ponowną kompresję, co wymusza ciągłe pobrania.
    • Nieaktualne 304 — najgroźniejszy przypadek: serwer nadal zwraca 304 (albo niezmieniony ETag) po rzeczywistej zmianie treści, przez co crawlery i cache nigdy nie pobierają aktualizacji. To błąd do wykrycia w analizie logów, a nie wrodzona wada 304.

304 a inne kody stanu

304 a 301 / 302 / 307 / 308

To są prawdziwe przekierowania. 301/308 (stałe) albo 302/307 (tymczasowe) niosą nagłówek Location i przenoszą klienta pod inny adres URL — a 301/308 przekazują również sygnał kanonizacji. 304 nie ma Location, nikogo nie przenosi i nie przekazuje sygnału rankingowego. Ta sama rodzina 3xx według numeru, zupełnie inna funkcja. Szczegóły poszczególnych kodów przekierowań znajdują się w osobnych artykułach (zobacz artykuł o przekierowaniu 301 i podcentrum przekierowań).

304 a 204 No Content

Oba są pozbawione ciała, ale z całkiem innych powodów. 204 No Content to sukces 2xx z celowo pustym ciałem, bo serwer ma rzeczywiście nic do wysłania — na przykład po udanym API DELETE/PUT albo w beaconie analitycznym. 304 również nie wysyła ciała, ale nie dlatego, że nic nie ma do wysłania; chodzi o to, że “you already have it and it’s still valid.” (tłumaczenie) „już to masz i nadal jest aktualne.” Nie mieszaj ich: 204 pod adresem URL strony może zostać potraktowany jak soft 404, bo nie ma indeksowalnej treści, podczas gdy 304 potwierdza ważność treści, którą Google już posiada. Artykuł o 204 No Content omawia ten kod w całości.

Typowe mity o 304

  1. “304 is a redirect.” (tłumaczenie) „304 jest przekierowaniem”. Brak nagłówka Location, nikt nigdzie nie przechodzi. Klient używa własnej kopii z cache. “redirecting the client to make use of that stored representation” (tłumaczenie) „przekierowanie klienta, aby użył zapisanej reprezentacji” z RFC 9110 oznacza wskazanie cache, a nie innego adresu URL.
  2. “304 is an error I need to fix.” (tłumaczenie) „304 to błąd do naprawienia”. To prawidłowy, zamierzony wynik działającej konfiguracji żądań warunkowych. 304 w crawlu lub DevTools oznacza, że cache działa — to jedno z najczęstszych nieporozumień w SERP-ach.
  3. “304 helps rankings.” (tłumaczenie) „304 pomaga w rankingach”. Nie ma bezpośredniego wpływu na ranking, a Google ogranicza również wpływ na indeksowanie — Search może przeliczyć sygnały adresu URL, ale poza tym 304 nie zmienia indeksowania. Korzyść to oszczędność zasobów, która według Google może pośrednio poprawiać efektywność crawlowania na bardzo dużych witrynach, ale nie jest sygnałem rankingowym ani gwarancją przekazania oszczędności na inne adresy URL.
  4. “If my server returns 304, Google will use stale content forever.” (tłumaczenie) „Jeśli serwer zwraca 304, Google będzie wiecznie używać starej treści”. 304 działa tylko, dopóki walidator pasuje. Gdy treść rzeczywiście się zmieni, poprawnie wdrożony serwer zwróci świeże 200 z nowymi walidatorami. Prawdziwym ryzykiem jest błędnie skonfigurowany serwer, który po zmianie treści nadal zwraca 304 — to błąd, a nie cecha 304. Evidence for this claim RFC 9111 defines validation as checking whether a stored response remains current, typically with a conditional request that can receive 304 Not Modified. Scope: HTTP cache validation; it does not create a Search ranking benefit. Confidence: high · Verified: IETF: RFC 9111 §4.3 — Validation
  5. “ETag and Last-Modified are interchangeable.” (tłumaczenie) „ETag i Last-Modified są wymienne”. Oba są walidatorami, ale Last-Modified zależy od formatu daty i ma dokładność znacznika czasu, podczas gdy ETag jest nieprzezroczysty i precyzyjny (choć przy nieostrożnej implementacji może różnić się między serwerami lub po ponownej kompresji). Google zaleca ETag jako podstawowy, a najlepiej ustawić oba.

Najczęstsze pytania

Czy HTTP 304 jest błędem? Nie — to sygnał sukcesu oznaczający, że cache działa. Kopia klienta nadal jest aktualna.

Czy 304 Not Modified jest przekierowaniem? Nie. Należy do klasy 3xx z powodu numeracji, ale nie ma nagłówka Location i nie przenosi klienta pod nowy adres URL.

Czy 304 pomaga w SEO lub rankingach? Nie ma bezpośredniego wpływu na ranking ani wpływu na indeksowanie poza możliwością przeliczenia przez Google sygnałów adresu URL. Oszczędza przepustowość i obliczenia, pozwalając crawlerom pomijać niezmienione strony, co według Google może pośrednio poprawiać efektywność crawlowania na dużych witrynach.

Jaka jest różnica między ETag a Last-Modified? ETag to nieprzezroczysty odcisk wersji dopasowywany przez If-None-Match; Last-Modified to znacznik czasu dopasowywany przez If-Modified-Since. Google zaleca ETag jako mniej podatny na błędy.

Czym różni się słaby ETag od silnego? Silny ETag potwierdza treść identyczną bajt po bajcie; słaby ETag (z prefiksem W/) potwierdza równoważność semantyczną i toleruje błahe różnice, takie jak kompresja lub zmieniona data w stopce.

Dlaczego widzę 304 w logach lub raportach crawlowania? Ponieważ klienci wysyłają żądania warunkowe, a serwer poprawnie potwierdza, że treść się nie zmieniła. To oczekiwane i prawidłowe.

Jak sprawić, aby serwer poprawnie zwracał 304? Wysyłaj ETag/Last-Modified przy 200, a przy następnym żądaniu obsługuj If-None-Match/If-Modified-Since, zwracając 304 bez ciała, gdy walidator nadal pasuje.

Jaka jest różnica między 304 a 204? Oba są pozbawione ciała; 204 dlatego, że nie ma nic do wysłania, a 304 dlatego, że klient ma już nadal aktualną kopię.

Czy Googlebot wysyła nagłówki warunkowe przy każdym żądaniu? Nie — obsługa cache różni się między crawlerami, więc nie każde żądanie będzie warunkowe, nawet przy skonfigurowanych nagłówkach.

Czy odpowiedź 304 może mieć ciało? Nie. RFC 9110 mówi: “it cannot contain content or trailers.” (tłumaczenie) „nie może zawierać treści ani trailerów.” Odpowiedź 304 z ciałem narusza specyfikację.

Evidence for this claim A 304 response terminates after the header section and cannot contain content or trailers. Scope: conditional GET and HEAD Confidence: high · Verified: RFC 9110 §15.4.5: 304 Not Modified

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.