Heim >Backend-Entwicklung >PHP-Tutorial >Regulärer PHP-Ausdruck in Aktion: passende HTTP-Statuscodes

Regulärer PHP-Ausdruck in Aktion: passende HTTP-Statuscodes

WBOY
WBOYOriginal
2023-06-23 09:33:461376Durchsuche

PHP-Praxis für reguläre Ausdrücke: Anpassen des HTTP-Statuscodes

Bei der Website-Entwicklung ist der HTTP-Statuscode ein sehr wichtiges Konzept. Gemäß dem HTTP-Protokoll sollte jede HTTP-Antwort einen dreistelligen Statuscode enthalten, um dem Client das Verarbeitungsergebnis der Anfrage mitzuteilen. Wenn Sie Websites mit PHP entwickeln, ist die Beherrschung regulärer Ausdrücke zur Zuordnung von HTTP-Statuscodes eine nützliche Fähigkeit.

Klassifizierung von HTTP-Statuscodes

HTTP-Statuscodes werden entsprechend der ersten Ziffer in die folgenden fünf Kategorien unterteilt:

  • 1xx: Informationsstatuscode, der angibt, dass der Server die Anfrage erhalten hat, aber zum Abschluss weitere Vorgänge erforderlich sind die Verarbeitung.
  • 2xx: Erfolgsstatuscode, der angibt, dass der Server die Anfrage erfolgreich verarbeitet hat.
  • 3xx: Umleitungsstatuscode, der angibt, dass weitere Vorgänge vom Client erforderlich sind, um die Anfrage abzuschließen.
  • 4xx: Client-Fehlerstatuscode, der darauf hinweist, dass ein Problem mit der vom Client gesendeten Anfrage vorliegt und der Server diese nicht verarbeiten kann.
  • 5xx: Serverfehlerstatuscode, der angibt, dass bei der Verarbeitung der Anfrage durch den Server ein Fehler aufgetreten ist.

In diesem Artikel werden wir zunächst alle HTTP-Statuscodes auflisten und sie dann über reguläre PHP-Ausdrücke abgleichen.

Liste der HTTP-Statuscodes

Im Folgenden sind alle HTTP-Statuscodes und ihre Bedeutung aufgeführt:

  • 100 Weiter: Der Kunde sollte weiterhin Anfragen senden. Diese vorläufige Antwort wird verwendet, um den Client darüber zu informieren, dass ein Teil seiner Anfrage vom Server empfangen und noch nicht abgelehnt wurde. Wenn Sie mit dem Senden der Anfrage fortfahren, kann die gesamte Anfrage oder ein anderer Teil der Anfrage abgeschlossen sein.
  • 101 Protokollwechsel: Der Server hat die Anfrage des Clients empfangen und verstanden und den Protokoll-Upgrade-Vorgang abgeschlossen. Der Server benachrichtigt den Client über den Upgrade-Header, über ein anderes Protokoll zu kommunizieren.
  • 200 OK: Die Anfrage war erfolgreich und der von der Anfrage erwartete Antwortheader oder Datenkörper wird mit dieser Antwort zurückgegeben.
  • 201 Erstellt: Die Anfrage war erfolgreich und der Server hat eine neue Ressource erstellt.
  • 202 Akzeptiert: Der Server hat die Anfrage angenommen, die Verarbeitung jedoch noch nicht abgeschlossen und ein Erfolg kann nicht garantiert werden. Wird im Allgemeinen für die asynchrone Verarbeitung verwendet.
  • 203 Nicht autoritative Informationen: Der Server hat die Anfrage erfolgreich verarbeitet, aber die zurückgegebenen Informationen stammen möglicherweise aus einer anderen Quelle.
  • 204 Kein Inhalt: Der Server hat die Anfrage erfolgreich verarbeitet, aber keinen Inhalt zurückgegeben.
  • 205 Inhalt zurücksetzen: Der Server hat die Anfrage erfolgreich verarbeitet, muss aber keinen Inhalt zurückgeben.
  • 206 Teilinhalt: Der Server hat die Teilanforderung erfolgreich verarbeitet und der zurückgegebene Inhalt ist der Entitätsinhalt der Bereichsanforderung.
  • 300 Multiple Choices: Die vom Client angeforderte Ressource kann an mehreren Standorten gefunden werden, und der Server gibt eine Liste von Ressourcen zurück, aus denen der Client auswählen kann.
  • 301 Permanent verschoben: Die vom Client angeforderte Ressource wurde dauerhaft an einen neuen Speicherort verschoben und der Server gibt eine Umleitungs-URL an den Client zurück.
  • 302 Gefunden: Die vom Client angeforderte Ressource wurde vorübergehend an einen neuen Speicherort verschoben und der Server gibt eine umgeleitete URL an den Client zurück.
  • 303 Siehe Andere: Die vom Client angeforderte Ressource hat einen anderen URI und die GET-Methode sollte verwendet werden, um die angeforderte Ressource abzurufen.
  • 304 Nicht geändert: Der Client hat eine bedingte Anfrage gesendet und der Server hat dem Client mitgeteilt, dass die Ressourcen im Browser-Cache weiterhin verwendet werden können.
  • 305 Proxy verwenden: Auf die vom Client angeforderten Ressourcen muss über den Proxy zugegriffen werden.
  • 307 Temporäre Umleitung: Die vom Client angeforderte Ressource wurde vorübergehend an einen neuen Speicherort verschoben und der Server gibt eine umgeleitete URL an den Client zurück. Diese Umleitungsmethode ändert nicht die HTTP-Anforderungsmethode und den Nachrichtentext.
  • 400 Ungültige Anfrage: Die Anfrage weist einen Syntaxfehler auf oder die Anfrage kann vom Server nicht verstanden werden.
  • 401 Nicht autorisiert: Die Anfrage erfordert eine Benutzerverifizierung.
  • 402 Zahlung erforderlich: Dieser Statuscode ist für die zukünftige Verwendung reserviert und weist darauf hin, dass elektronisches Geld möglicherweise in Zukunft verwendet wird, obwohl es derzeit nicht verwendet wird. Dieser Statuscode ist speziell für digitale Währungen konzipiert, um in Zukunft eine angemessene Serverunterstützung für neue digitale Währungen sicherzustellen.
  • 403 Verboten: Der Server hat die Anfrage abgelehnt.
  • 404 Nicht gefunden: Der Server kann die angeforderte Ressource nicht finden.
  • 405 Methode nicht zulässig: Die vom Client angeforderte HTTP-Methode ist nicht zulässig.
  • 406 Nicht akzeptabel: Der Server kann die Anfrage basierend auf den vom Client angeforderten Inhaltsmerkmalen nicht abschließen.
  • 407 Proxy-Authentifizierung erforderlich: Der Anforderer sollte einen Proxy zur Autorisierung verwenden.
  • 408 Anforderungszeitüberschreitung: Die Anforderung ist abgelaufen.
  • 409 Konflikt: Die Anfrage kann aufgrund eines Konflikts mit dem aktuellen Status der angeforderten Ressource nicht abgeschlossen werden.
  • 410 Vorbei: Die angeforderte Ressource ist auf dem Server nicht mehr verfügbar.
  • 411 Länge erforderlich: Der Client hat den Content-Length-Header in der Anfrage nicht festgelegt und der Server kann diese Anfrage nicht verarbeiten.
  • 412 Vorbedingung fehlgeschlagen: Der Server konnte eine oder mehrere der in den Header-Feldern der Anfrage angegebenen Vorbedingungen bei der Validierung nicht erfüllen.
  • 413 Nutzlast zu groß: Die Anforderungsentität ist zu groß und der Server kann sie nicht verarbeiten.
  • 414 URI zu lang: Der angeforderte URI ist zu lang und der Server kann ihn nicht verarbeiten.
  • 415 Nicht unterstützter Medientyp: Der Server kann das an die Anfrage angehängte Medienformat nicht verarbeiten.
  • 416 Bereich nicht erfüllbar: Der vom Client angeforderte Bereich ist ungültig und kann vom Server nicht verarbeitet werden.
  • 417 Expectation fehlgeschlagen: Der Server kann die Expect-Anforderungsheaderinformationen nicht erfüllen.
  • 421 Fehlgeleitete Anfrage: Diese Anfrage richtet sich an einen Server, der keine Antwort generieren kann. Dies kann daran liegen, dass die Ressourcen, auf die diese Anforderungen zugreifen müssen, fehlerhaft oder nicht vollständig veröffentlicht sind oder nur auf dem lokalen Computer verfügbar sind. Faktoren, die nur für den spezifischen Client gelten, der mit seinem Netzwerk verbunden ist.
  • 422 Nicht verarbeitbare Entität: Das Anfrageformat ist korrekt, aber aufgrund semantischer Fehler kann nicht reagiert werden.
  • 423 Gesperrt: Die aktuelle Ressource ist gesperrt.
  • 424 Abhängigkeit fehlgeschlagen: Die aktuelle Anfrage ist aufgrund eines Konflikts mit der vorherigen Anfrage fehlgeschlagen.
  • 425 Zu früh: Die Anforderung kann erst erfüllt werden, wenn die zum Laden der Ressource erforderlichen Bedingungen erfüllt sind.
  • 426 Upgrade erforderlich: Der Client sollte auf TLS/1.0 wechseln.
  • 428 Vorbedingung erforderlich: Für diese Anfrage ist eine gültige Vorbedingung erforderlich.
  • 429 Zu viele Anfragen: Zu viele Anfragen.
  • 431 Anfrage-Header-Felder zu groß: Der Anfrage-Header überschreitet die Größenbeschränkung.
  • 451 Aus rechtlichen Gründen nicht verfügbar: Diese Anfrage sollte nicht bearbeitet werden. Die Anfrage enthält möglicherweise verbotene Informationen.
  • 500 Interner Serverfehler: Der Server hat einen unbekannten Fehler festgestellt.
  • 501 Nicht implementiert: Der Server unterstützt die vom Client angeforderte Funktion nicht.
  • 502 Schlechtes Gateway: Der Server, der als Gateway oder Proxy fungiert, ist beim Ausführen der Anfrage auf einen Fehler gestoßen.
  • 503 Dienst nicht verfügbar: Der Server ist vorübergehend nicht in der Lage, die Anfrage zu verarbeiten und kann einen Retry-After-Header an den Client zurücksenden.
  • 504 Gateway-Timeout: Der Server, der als Gateway oder Proxy fungiert, konnte bei der Ausführung der Anfrage nicht rechtzeitig eine Antwort vom Upstream-Server empfangen.
  • 505 HTTP-Version nicht unterstützt: Der Server unterstützt die in der Anfrage verwendete HTTP-Protokollversion nicht.
  • 506 Variante verhandelt auch: Der Server hat einen internen Konfigurationsfehler, der dazu führt, dass die verarbeitete Anfrage mehr als eine verhandelbare Antwort erfüllt.
  • 507 Unzureichender Speicher: Der Server kann den zum Abschließen der Anfrage erforderlichen Inhalt nicht speichern.
  • 508 Schleife erkannt: Der Server befand sich während der Verarbeitung der Anfrage in einer Endlosschleife.
  • 510 Nicht erweitert: Der Client muss die Antwort weiter erweitern, und der Server hat keine entsprechende Lösung.
  • 511 Netzwerkauthentifizierung erforderlich: Der Client muss authentifiziert werden, um Netzwerkressourcen nutzen zu können.

Regulärer PHP-Ausdruck zum Abgleichen des HTTP-Statuscodes

Nun versuchen wir, den regulären PHP-Ausdruck zum Abgleichen des HTTP-Statuscodes zu verwenden. In PHP können wir die Funktion preg_match() verwenden, um den Vergleich regulärer Ausdrücke zu implementieren. Das Folgende ist ein Beispielcode für den Abgleich von HTTP-Statuscodes:

$status_code = '200'; // 要匹配的状态码
$pattern = '/^[1-5][0-9]{2}$/'; // HTTP状态码的正则表达式
if(preg_match($pattern, $status_code)) {
    echo '匹配成功!';
} else {
    echo '匹配失败!';
}

Im obigen Code definieren wir zunächst den abzugleichenden Statuscode als 200 und dann den regulären Ausdruck des HTTP-Statuscodes als „/^1-5“. { 2}$/“. Dieser reguläre Ausdruck kann mit 3 Ziffern übereinstimmen, die erste Ziffer muss 1 bis 5 sein und die verbleibenden zwei Ziffern können 0 bis 9 sein. Wenn schließlich die Funktion preg_match() zum Abgleichen verwendet wird, bedeutet ein Rückgabewert von 1, dass der Abgleich erfolgreich war, und ein Rückgabewert von 0, dass der Abgleich fehlgeschlagen ist.

Wenn Sie mehrere HTTP-Statuscodes abgleichen möchten, können Sie die Funktion preg_match_all() verwenden. Hier ist ein Beispielcode, der alle HTTP-Statuscodes abgleicht:

$status_codes = array('200', '404', '500'); // 要匹配的状态码数组
$pattern = '/^[1-5][0-9]{2}$/'; // HTTP状态码的正则表达式
foreach($status_codes as $status_code) {
    if(preg_match($pattern, $status_code)) {
        echo $status_code.' 匹配成功!'."
";
    } else {
        echo $status_code.' 匹配失败!'."
";
    }
}

Im obigen Code definieren wir zunächst das Array der abzugleichenden Statuscodes und verwenden dann foreach(), um das Array zu durchlaufen. In der Schleife verwenden wir die Funktion preg_match(), um einen Abgleich durchzuführen und die Abgleichsergebnisse basierend auf dem Rückgabewert auszugeben.

Zusammenfassung

HTTP-Statuscode ist ein sehr wichtiges Konzept bei der Website-Entwicklung. Manchmal müssen wir HTTP-Statuscodes über reguläre Ausdrücke abgleichen. In PHP können wir die Funktion preg_match() verwenden, um den Vergleich regulärer Ausdrücke zu implementieren. Ich hoffe, dass Sie durch diesen Artikel die Fähigkeit beherrschen, HTTP-Statuscodes mit regulären PHP-Ausdrücken abzugleichen.

Das obige ist der detaillierte Inhalt vonRegulärer PHP-Ausdruck in Aktion: passende HTTP-Statuscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn