Was ist der Unterschied zwischen get und post in PHP?

青灯夜游
Freigeben: 2023-02-27 07:30:01
Original
5396 Leute haben es durchsucht

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage