Der wohl wichtigste Standard für das Internet ist der HTTP-Standard. Und der Teil des HTTP-Standards, mit dem ich mich am häufigsten beschäftige, sind die HTTP-Status-Codes. So ziemlich jedes Mal, wenn ich die Entwicklertools aufmache oder einen Crawl mache, gucke ich auf Tabellen mit Status-Codes. Dutzende, wenn nicht Hunderte oder auch Tausende Status-Codes.
Manchmal träume ich sogar von Status-Codes (also jetzt nicht ständig, keine Sorge).
So ein Standard ist nie völlig statisch. Er muss regelmäßig angepasst werden, um sich an eine stetig verändernde Welt anzupassen oder Unzulänglichkeiten auszugleichen.
Dabei muss mit Bedacht die Waage zwischen Zukunftsfähigkeit und Rückwärtskompatibilität gehalten werden. Schließlich kann man nicht mal eben alle Clients im Internet updaten, wenn sich mal was im Standard ändert. Das bedeutet für den HTTP-Standard, dass Bestehendes kaum angefasst, sondern fast immer erweitert wird.
Beispiel, und Dreh- und Angelpunkt dieses Artikels:
Bei den Weiterleitungen gab es seit HTTP/1.0 zwei wichtige Status-Codes: die guten alten 301 und 302. Damals™️ hat man nicht festgelegt, ob der Client das Weiterleitungsziel mit derselben HTTP-Methode (GET, POST und so, Du weißt schon) aufrufen soll. Das ist in bestimmten Fällen so relevant, dass die für den Standard verantwortliche Internet Engineering Task Force (IETF) das in der Status-Code-Definition aufnehmen wollte. Aber da niemand weiß, was im Internet alles kaputt geht, wenn man an der exakten Definition von 301 und 302 herumfummelt, hat man zusätzlich die Status-Codes 307 und 308 eingeführt.
Weitestgehend stehe ich diesen Status-Codes neutral bis positiv gegenüber. Aber ein Punkt in der Definition stört mich:
-
301 ist eine UNGERADE Zahl und definiert eine PERMANENTE Weiterleitung,
ABER:
307 ist auch eine UNGERADE Zahl und definiert eine TEMPORÄRE Weiterleitung.
-
302 ist eine GERADE Zahl und definiert eine TEMPORÄRE Weiterleitung,
ABER:
308 ist auch eine GERADE Zahl und definiert eine PERMANENTE Weiterleitung.
Es wäre ein schönes, logisches Muster, wenn die ungerade Zahl jeweils die permanente Weiterleitung wäre und die gerade Zahl jeweils die temporäre.
Der Unterschied zwischen permanenter und temporärer Weiterleitung ist aus SEO-Perspektive bei jeder einzelnen Weiterleitung relevant. Im Gegensatz zu diesem arkanen GET-POST-Quatsch, der uns den Schlamassel eingebrockt hat. Der ist für SEOs quasi nie relevant.
Darum ist da immer, wenn ich einen Status Code 307 oder 308 sehe, dieses kurze Stutzen, während mein Hirn die kognitive Dissonanz zwischen dem schönen, logischen Muster und der historisch gewachsenen Realität des Standards auflöst.
Und da insbesondere der Status Code 308 in den letzten Jahren immer häufiger den guten alten 301 ablöst (schließlich wurde der ja in den Standard ergänzt, weil der neue Status-Code für GET-POST wichtig ist) häuft sich das Vorkommen dieser kognitiven Dissonanz bei mir.
Daher hoffe ich, dass das Schreiben dieses Artikels eine therapeutische Wirkung hat und mir hilft, die Status-Codes zu akzeptieren, wie sie sind.
Falls es Dir ähnlich geht, hoffe ich, dass das Lesen dieses Artikels auch Dir hilft, die korrekte (wenn auch unlogische und unschöne) Zuordnung zwischen dem Status-Code und der Weiterleitungsart zu verinnerlichen. Und wenn nicht, danke ich Dir zumindest fürs Zuhören (beziehungsweise fürs Lesen).