Is het acceptabel om de tekst die met de HTTP-statuscode is verzonden, te wijzigen?

Ik implementeer een 'testmodus' met mijn website die toegang tot bepaalde pagina's verbiedt terwijl ze in aanbouw zijn, waardoor ze alleen toegankelijk zijn voor beheerders voor privétesten. Ik was van plan de 401-statuscode te gebruiken, omdat de pagina bestaat , maar ze mogen deze niet gebruiken en ze kunnen al dan niet worden geverifieerd, maar alleen bepaalde gebruikers (in principe ik) zouden nog steeds toegang krijgen tot de pagina.

Wat ik me afvraag is of de tekst na het HTTP/1.1 401 -deel er toe deed? Moet het Niet-geautoriseerd zijn of kan het eigenlijk alles zijn wat u er achter wilt zetten, zolang de 401 nog steeds geschikt is voor de fout? Ik wilde een bericht verzenden zoals Tijdelijk niet beschikbaar om aan te geven dat de pagina normaal beschikbaar is voor alle bezoekers, maar een reconstructie ondergaat en tijdelijk niet beschikbaar is. Moet ik dit doen of niet?

4
Voor dit geval gebruik ik liever een 503: stackoverflow.com/a/1701622/39321
toegevoegd de auteur Svish, de bron
U kunt die tekst wijzigen, maar de meeste gebruikers zien het niet. Grafische browsers tonen de HTML in de hoofdtekst van de reactie, niet de redencode in de eerste regel van de HTTP-antwoordkop. Uw wijziging zou dus meestal alleen van belang zijn als u de server test met iets als curl --head of telnet .
toegevoegd de auteur Joe White, de bron
Ik had aan 403 gedacht, maar 503 is eigenlijk correcter. 401 betekent: mogelijk hebt u toegang tot de bron als u de juiste inloggegevens hebt opgegeven. Een wachtwoord of een beveiligingstoken ontbreekt bijvoorbeeld. Omdat een wachtwoord niet helpt, is 401 niet geschikt. Google voor "fout 401", "fout 403" en "fout 503" voor een verklaring.
toegevoegd de auteur gnasher729, de bron

3 antwoord

Je mag ze veranderen.

De statusberichten (technisch "redenfrases" genoemd) zijn slechts aanbevelingen en "KAN worden gewijzigd zonder het protocol te beïnvloeden)."

See http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1

U MOET echter :-) de codes nog steeds correct gebruiken en zinvolle berichten geven. Gebruik alleen een 401 als uw conditie is wat de RFC zegt dat een 401 zou moeten zijn.

4
toegevoegd
In het bijzonder is 401 niet de juiste status voor "tijdelijk niet beschikbaar".
toegevoegd de auteur Julian Reschke, de bron

U KUNT de tekst wijzigen (heel weinig http-clients besteden er enige aandacht aan), maar het is beter om de meest toepasselijke reactiecode te gebruiken. Uiteindelijk is de reden voor het falen de reden waarom de verschillende responscodes bedoeld waren om te worden gebruikt.

Misschien past dit:

404 Niet gevonden De gevraagde bron kan niet worden gevonden, maar kan dat wel zijn   weer beschikbaar in de toekomst. [2] Daaropvolgende verzoeken van de klant   zijn toegestaan.

0
toegevoegd
Eerst dacht ik aan 403, maar authenticatie lost het probleem op in het geval van beheerders en ook het enige tijdelijke, waar de 403-status specificeerde dat het verzoek NIET moest worden herhaald . Ik denk dat dit impliceert dat het nooit mag worden herhaald. Nee?
toegevoegd de auteur animuson, de bron
Dan moet je het volgende doen: 404 Niet gevonden De gevraagde bron kon niet worden gevonden maar is mogelijk in de toekomst weer beschikbaar. [2] Latere verzoeken van de klant zijn toegestaan.
toegevoegd de auteur Raymond Hettinger, de bron

Ja, de reden-zin kan worden gewijzigd. Het heeft geen invloed op de betekenis van het bericht.

Maar als je moet zeggen "tijdelijk niet beschikbaar", moet je er 5xx (server) code van maken. 503 lijkt hier goed te zijn (zie RFC 2616, sectie 10.5.4 ).

0
toegevoegd