Welches von $_REQUEST, $_GET und $_POST ist am schnellsten?

Lesezeit: 7 Minuten

Welches von REQUEST GET und POST ist am schnellsten
Kobra

Welcher dieser Codes wird schneller sein?

$temp = $_REQUEST['s'];

oder

if (isset($_GET['s'])) {
  $temp = $_GET['s'];
}
else {
  $temp = $_POST['s'];
}

  • Es gibt einen dritten Fall, wissen Sie. !isset($_REQUEST['s']).

    – Franz

    17. Dezember 2009 um 22:10 Uhr

  • Wie wichtig ist es, dass andere Ihren Code klar verstehen? POST und GET sind explizit, während REQUEST aus verschiedenen Quellen stammen kann. Ich denke, die Effizienz ist vernachlässigbar, da REQUEST-, POST- und GET-Superglobals immer für jede Anfrage geladen werden.

    – Kevin

    17. Dezember 2009 um 22:31 Uhr

$_REQUESTenthält standardmäßig den Inhalt von $_GET, $_POST und $_COOKIE.

Aber es ist nur eine Vorgabe, die davon abhängt variables_order ; und nicht sicher, ob Sie mit Cookies arbeiten möchten.

Wenn ich wählen müsste, würde ich wahrscheinlich nicht verwenden $_REQUESTund ich würde wählen $_GET oder $_POSTje nachdem, was meine Anwendung leisten soll (dh das eine oder das andere, aber nicht beides) : allgemein gesagt :

  • Du solltest benutzen $_GET wenn jemand Daten anfordert von Ihre Bewerbung.
  • Und Sie sollten verwenden $_POST wenn jemand drückt (Einfügen oder Aktualisieren; oder Löschen) Daten zu Ihre Bewerbung.

In jedem Fall wird es keinen großen Unterschied in Bezug auf die Leistung geben: Der Unterschied wird vernachlässigbar sein, verglichen mit dem, was der Rest Ihres Skripts tun wird.

  • Idealerweise sollten Sie $_REQUEST immer verwenden können. Aber das ist natürlich nur eine heile Welt.

    – Tyler Carter

    17. Dezember 2009 um 22:16 Uhr

  • $_REQUEST ist angeblich (oder war zumindest früher) teurer als die direkte Verwendung von $_POST und $_GET.

    – Darrell Brogdon

    17. Dezember 2009 um 22:47 Uhr

  • +1 für das Konzept, dass der Leistungsunterschied vernachlässigbar ist und die Wartungsperspektive wichtiger ist: $_GET und $_POST vermitteln Bedeutung auf eine Weise, die $_REQUEST nicht kann.

    – Jon Cram

    17. Dezember 2009 um 22:48 Uhr

  • Die Verwendung von $_REQUEST verursacht kein XSS/XSRF. Das Nichtverstehen der Nuancen von XSS/XSRF verursacht XSS/XSRF. Solange Sie mit Tokens abschwächen, gibt es kein Problem UND Sie erhalten die Vorteile der Verwendung von $_REQUEST (alle Ihre Variablen befinden sich in einem Superglobal). Ich erstelle $_REQUEST tatsächlich neu, bevor ich es aufgrund von ‘variables_order’ basierend auf den anderen Superglobals verwende. Ich verarbeite $_COOKIE, dann $_GET, dann $_POST. Auf diese Weise haben POST-Variablen die höchste Priorität und Cookie-Variablen die niedrigste, wodurch ich eine Reihe von Fehlern (z. B. Adobe Flash und magische Anführungszeichen) implizit beheben kann.

    – CubicleSoft

    2. Oktober 2013 um 14:03 Uhr

  • es liegt im Namen, Get = get from , Post = post to

    – Mürrrisch

    12. Juni 2015 um 13:32 Uhr

GET vs. POST

1) Sowohl GET als auch POST erstellen ein Array (zB array( key => value, key2 => value2, key3 => value3, …)). Dieses Array enthält Schlüssel/Wert-Paare, wobei Schlüssel die Namen der Formularsteuerelemente und Werte die Eingabedaten des Benutzers sind.

2) Sowohl GET als auch POST werden als $_GET und $_POST behandelt. Dies sind Superglobals, was bedeutet, dass sie immer zugänglich sind, unabhängig vom Geltungsbereich – und Sie können von jeder Funktion, Klasse oder Datei aus darauf zugreifen, ohne etwas Besonderes tun zu müssen.

3) $_GET ist ein Array von Variablen, die über die URL-Parameter an das aktuelle Skript übergeben werden.

4) $_POST ist ein Array von Variablen, die über die HTTP POST-Methode an das aktuelle Skript übergeben werden.

Wann sollte GET verwendet werden?

Informationen, die von einem Formular mit der GET-Methode gesendet werden, sind für alle sichtbar (alle Variablennamen und -werte werden in der URL angezeigt). GET hat auch Beschränkungen für die Menge der zu sendenden Informationen. Die Beschränkung liegt bei etwa 2000 Zeichen. Da die Variablen jedoch in der URL angezeigt werden, ist es möglich, die Seite mit einem Lesezeichen zu versehen. Dies kann in einigen Fällen nützlich sein.

GET kann zum Senden nicht sensibler Daten verwendet werden.

Hinweis: GET sollte NIEMALS zum Senden von Passwörtern oder anderen sensiblen Informationen verwendet werden!

Wann sollte POST verwendet werden?

Informationen, die von einem Formular mit der POST-Methode gesendet werden, sind für andere unsichtbar (alle Namen/Werte sind in den Hauptteil der HTTP-Anforderung eingebettet) und es gibt keine Beschränkungen hinsichtlich der Menge der zu sendenden Informationen.

Darüber hinaus unterstützt POST erweiterte Funktionen wie die Unterstützung für mehrteilige Binäreingaben beim Hochladen von Dateien auf den Server.

Da die Variablen jedoch nicht in der URL angezeigt werden, ist es nicht möglich, die Seite mit einem Lesezeichen zu versehen.

  • Bitte fügen Sie auch etwas über REQUEST hinzu.

    – Schwarze Mamba

    3. März 2017 um 9:46 Uhr

  • Was ist mit $_REQUEST?

    – Aamir Kalimi

    26. November 2019 um 7:30 Uhr

Welches von REQUEST GET und POST ist am schnellsten
gewel

$_GET ruft Variablen aus der Abfragezeichenfolge oder Ihrer URL ab.>

$_POST ruft Variablen aus einer POST-Methode ab, wie (allgemein) Formulare.

$_REQUEST ist eine Verschmelzung von $_GET und $_POST, wobei $_POST $_GET überschreibt. Es ist gut, $_REQUEST auf selbstreferenziellen Formularen für Validierungen zu verwenden.

  • +1 Das wurde mir im Grunde beigebracht. Nicht technisch wie andere Antworten, aber viel einfacher zu merken (GET aus Abfragezeichenfolge, POST ab Formulareinreichung).

    – jp2code

    4. April 2014 um 14:58 Uhr

Welches von REQUEST GET und POST ist am schnellsten
Daniel Bruce

Ich würde vorschlagen, zu verwenden $_POST und $_GET ausdrücklich.

Die Verwendung von $_REQUEST sollte bei richtigem Site-Design ohnehin unnötig sein, und es hat einige Nachteile, wie z CSRF/XSS Angriffe und andere Dummheiten, die durch das Speichern von Daten in der URL entstehen.

Der Geschwindigkeitsunterschied sollte so oder so minimal sein.

Verwenden Sie ANFRAGE. Niemand kümmert sich um die Geschwindigkeit einer so einfachen Operation, und es ist viel saubererer Code.

  • Gute Antwort, mit der Einschränkung, dass in vielen Situationen ein GET oder ein POST basierend auf der Situation ausgewählt werden sollte, anstatt eines von beiden zu verwenden.

    – ceejayoz

    17. Dezember 2009 um 22:11 Uhr

  • Sie haben Recht, dass es niemanden interessiert, aber meiner Meinung nach mit $_REQUEST ist die falsche Schlussfolgerung. Siehe meine Antwort.

    – Franz

    17. Dezember 2009 um 22:13 Uhr

  • Warum ist die Verwendung von $_REQUEST im Vergleich zu $_GET oder $_POST sauberer? $_REQUEST führt die gleiche Logik hinter den Kulissen aus und die Auswahl von GET oder POST gibt Ihnen mehr Kontrolle.

    – JayZeng

    17. Dezember 2009 um 22:17 Uhr

  • Die Behauptung, dass _REQUEST hygienischer ist, bedarf der Ausarbeitung.

    Benutzer213154

    17. Dezember 2009 um 22:24 Uhr

  • Ich würde die Verwendung von GET empfehlen, wenn Sie möchten, dass der Benutzer die URL kopieren und denselben Vorgang ausführen kann, dh (die URL ist wie „google.com/q=searchWord“ sichtbar, während POST zum Posten von Daten auf einer Website verwendet werden sollte die nur einmal eingefügt werden sollen, oder viele Daten sind aktiv und der Benutzer sollte die URL nicht behalten können, z. B. beim Einfügen von Daten in Datenbanken, beim Anmelden usw.

    – Dekan Meehan

    18. Februar 2014 um 10:07 Uhr

Mach dir keine Sorge. Aber Sie sollten trotzdem die zweite Lösung verwenden (plus eine zusätzliche Prüfung, ob keine dieser Variablen vorhanden ist), da es Sicherheitsprobleme gibt $_REQUEST (seit $_GET und $_POST sind nicht die einzigen Quellen für dieses Array).

Es gab einen Beitrag über die Probleme mit $_REQUEST gestern glaube ich. Lass es mich finden.

BEARBEITEN: Na ja, nicht direkt ein Post, aber hier ist es trotzdem: http://kuza55.blogspot.com/2006/03/request-variable-fixation.html

  • Gute Antwort, mit der Einschränkung, dass in vielen Situationen ein GET oder ein POST basierend auf der Situation ausgewählt werden sollte, anstatt eines von beiden zu verwenden.

    – ceejayoz

    17. Dezember 2009 um 22:11 Uhr

  • Sie haben Recht, dass es niemanden interessiert, aber meiner Meinung nach mit $_REQUEST ist die falsche Schlussfolgerung. Siehe meine Antwort.

    – Franz

    17. Dezember 2009 um 22:13 Uhr

  • Warum ist die Verwendung von $_REQUEST im Vergleich zu $_GET oder $_POST sauberer? $_REQUEST führt die gleiche Logik hinter den Kulissen aus und die Auswahl von GET oder POST gibt Ihnen mehr Kontrolle.

    – JayZeng

    17. Dezember 2009 um 22:17 Uhr

  • Die Behauptung, dass _REQUEST hygienischer ist, bedarf der Ausarbeitung.

    Benutzer213154

    17. Dezember 2009 um 22:24 Uhr

  • Ich würde die Verwendung von GET empfehlen, wenn Sie möchten, dass der Benutzer die URL kopieren und denselben Vorgang ausführen kann, dh (die URL ist wie „google.com/q=searchWord“ sichtbar, während POST zum Posten von Daten auf einer Website verwendet werden sollte die nur einmal eingefügt werden soll, oder es sind viele Daten aktiv und der Benutzer sollte die URL nicht behalten können, z. B. beim Einfügen von Daten in Datenbanken, beim Anmelden usw.

    – Dekan Meehan

    18. Februar 2014 um 10:07 Uhr

1646907251 178 Welches von REQUEST GET und POST ist am schnellsten
Kristina Brooks

if (isset($_GET['s'])) {
  $temp = $_GET['s'];
}
else {
  $temp = $_POST['s'];
}

Verwenden Sie das, weil es sicherer ist und keinen merklichen Geschwindigkeitsunterschied macht

  • Gar keine schlechte Lösung. Es kümmert sich um die damit verbundenen Sicherheitslücken $_REQUEST erlaubt aber trotzdem den Zugriff auf dasselbe Skript in beiden Richtungen (in meinem Fall wird dasselbe Skript mit unterschiedlichen “Aktionen” verwendet und manchmal wäre $_GET in Ordnung, aber manchmal brauche ich $_POST, um die Daten zu verstecken/sichern).

    – Xandor

    20. Juli 2019 um 15:25 Uhr

987500cookie-checkWelches von $_REQUEST, $_GET und $_POST ist am schnellsten?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy