Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen get und post in PHP?
Der Hauptunterschied zwischen Get und Post besteht darin, dass Get Daten über die URL überträgt, während Post es Benutzern nicht ermöglicht, die spezifischen übertragenen Informationen zu sehen. Dieser Unterschied bestimmt die Verwendung der beiden. Die Get-Methode wird hauptsächlich zum Suchen verwendet, während die Post-Methode hauptsächlich zum Übertragen von Benutzerbetriebsinformationen an den Server verwendet wird. Im Folgenden sind die detaillierten Unterschiede zwischen Get und Post aufgeführt:
Sicherheit von GET und POST
1 GET wird über eine URL angefordert, die direkt angezeigt und übertragen werden kann Klartext.
2. POST wird über den Anforderungsheader angefordert, der von Entwicklertools oder der Paketerfassung eingesehen werden kann und auch im Klartext vorliegt.
3. GET-Anfragen werden im Browserverlauf und möglicherweise auch im Webprotokoll gespeichert.
Übermittlung erhalten, die angeforderten Daten folgen der URL (einheitliche Ressourcenpositionierung), niedrige Sicherheit
Nach der Übermittlung werden die übermittelten Daten in den Hauptteil des http-Pakets eingefügt, Sicherheit hoch
Datengröße von GET und POST
GET: Bestimmte Browser und Server haben Einschränkungen hinsichtlich der URL-Länge. Beispielsweise beträgt die Beschränkung der URL-Länge im IE 2083 Byte (2K+35). Für andere Browser wie Netscape, FireFox usw. gibt es theoretisch keine Längenbeschränkung und die Begrenzung hängt von der Unterstützung des Betriebssystems ab. Die von Get übertragene Datenmenge ist gering, da sie durch die Länge der URL begrenzt ist, aber effizienter.
POST: Da der Wert nicht über die URL übertragen wird, sind die Daten theoretisch nicht begrenzt . Post kann eine große Datenmenge übertragen, daher können Sie beim Hochladen von Dateien nur die Post-Methode verwenden.
Das Zeichenformat der übertragenen Daten ist unterschiedlich.
Der Wert Der Datensatz des Get-Restriktionsformulars muss aus ASCII-Zeichen bestehen und kann nicht über request.setCharacterEncoding("utf-8"); festgelegt werden. Vom Server erhaltene chinesische Zeichen können verstümmelt sein!
post unterstützt den gesamten Zeichensatz ISO10646 und kann chinesische Zeichen über request.setCharacterEncoding("utf-8"); korrekt anzeigen.
Die Serverseite erhält Daten auf unterschiedliche Weise
Get auf der Serverseite $_GET;
Postet auf der Serverseite $_POST
GET ist idempotent, POST ist nicht idempotent
Impotenz bedeutet, dass die Auswirkung der mehrmaligen Ausführung derselben Anforderungsmethode genau die gleiche ist wie die nur einmalige Ausführung.
1. Gemäß RFC-Spezifikationen sind PUT-, DELETE- und Sicherheitsmethoden idempotent. Obwohl es sich um eine Spezifikation handelt, gibt es keine Garantie dafür, dass die Serverimplementierung idempotent ist.
2. Idempotenz wird hauptsächlich eingeführt, um mit Situationen umzugehen, in denen dieselbe Anfrage wiederholt gesendet wird, z. B. wenn die Verbindung unterbrochen wird, bevor die Anfrage antwortet. Wenn die Methode idempotent ist, können Sie die Anfrage sicher erneut senden. Dies ist auch der Grund, warum der Browser den Benutzer auffordert, beim Sichern/Aktualisieren auf POST zu stoßen: Die POST-Semantik ist nicht idempotent und wiederholte Anfragen können unerwartete Konsequenzen haben.
3. Im Szenario von Weibo wird beispielsweise die Semantik von GET im Szenario „Schauen Sie sich die letzten 20 Weibo-Beiträge auf meiner Timeline“ verwendet, während die Semantik von POST in verwendet wird das Szenario von „In einem Szenario wie dem Posten auf Weibo, dem Kommentieren und dem Liken.
Weitere PHP-Kenntnisse finden Sie auf der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen get und post in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!