POST (HTTP)
Im Computer, POST ist ein Anforderungsmethode unterstützt durch Http verwendet von der Weltweites Netz. Die Post -Request -Methode fordert nach Entwurf an, dass ein Webserver die im Körper der Anforderungsnachricht eingeschlossenen Daten akzeptiert, höchstwahrscheinlich zum Speichern.[1] Es wird häufig beim Hochladen einer Datei oder beim Senden einer abgeschlossenen Verwendung verwendet Web-Formular.
Im Gegensatz dazu die HTTP ERHALTEN Anforderungsmethode ruft Informationen vom Server ab. Im Rahmen einer Get -Anfrage können einige Daten innerhalb der URL übergeben werden Abfragezeichenfolge, angeben (z. B. Suchbegriffe, Datumsbereiche oder andere Informationen, die die Abfrage definieren.
Im Rahmen einer Postanforderung kann eine willkürliche Menge an Daten aller Art an den Server im Körper der Anforderungsnachricht gesendet werden. EIN Headerfeld In der Postanforderung gibt normalerweise der Internet -Medientyp des Nachrichtenverbands an.
Daten veröffentlichen
Das World Wide Web und HTTP basieren auf einer Reihe von Anforderungsmethoden oder „Verben“, einschließlich Post und Get sowie Put, Löschen und mehreren anderen. Webbrowser verwenden normalerweise nur GET und Post, aber Erholsam online Apps Verwenden Sie viele andere. Posts Platz im Bereich der HTTP -Methoden besteht darin, eine Darstellung eines neuen zu senden Datenentität auf den Server, damit er als neuer Untergebener der von der identifizierten Ressource gespeichert wird Uri.[1] Zum Beispiel für die URI http://example.com/customers
Es ist zu erwarten, dass nach Anfragen neue Kunden, jeweils jeweils ihren Namen, Ihre Adresse, Kontaktdaten usw., vertreten. Frühe Website -Designer haben sich auf zwei wichtige Arten von diesem ursprünglichen Konzept abgewandt. Erstens gibt es keinen technischen Grund für eine URI, die textuell zu beschreiben Webressource untergeordnet, zu denen Postdaten gespeichert werden. In der Tat wird der letzte Teil eines URI, sofern einige Anstrengungen unternommen werden, die Verarbeitungsseite und ihre Technologie der Webanwendung wie z. http://example.com/applicationForm.php
. Angesichts der natürlichen Einschränkung der meisten Webbrowser, nur GET oder Post zu verwenden, waren Designer die Notwendigkeit, Post zu übernehmen, um viele andere Datenübermittlungs- und Datenverwaltungsaufgaben zu erledigen, einschließlich der Änderung vorhandener Aufzeichnungen und deren Löschung.
Die Bemühungen einiger einflussreicher Schriftsteller, den ersten Punkt bereits 1998 zu beheben.[2] Webanwendungs -Frameworks wie zum Beispiel Rubin auf Schienen und andere erleichtern den Designern, ihren Benutzern mit Semantische URLs. In Bezug auf den zweiten Punkt ist es möglich zu verwenden Client-Seite Scriptingoder um eigenständige Apps zu schreiben, um die anderen HTTP -Methoden zu verwenden, bei denen sie relevant sind,[3] Außerhalb dieser Webformulare, die Serverdaten übermitteln oder ändern, verwenden sie jedoch weiterhin Post für den Zweck.
Das heißt nicht, dass jedes Webformular festgelegt werden sollte method = "post"
in seinem Eröffnungsschild. Viele Formulare werden verwendet, um genauer das Abrufen von Informationen vom Server anzugeben, ohne die Hauptdatenbank zu ändern. Suchformulare sind beispielsweise idealerweise dazu geeignet zu haben method = "get"
spezifizierten.[4]
Es gibt Zeiten, in denen das HTTP -Get auch für das Abrufen von Daten weniger geeignet ist. Ein Beispiel hierfür ist, wenn in der URL viele Daten angegeben werden müssten. Browser und Webserver können die Länge der URL, die sie ohne Kürzung oder Fehler behandeln, Grenzen haben. Prozentualer Kodierung von reservierten Charakteren in URLs und Abfragebrägern können ihre Länge erheblich erhöhen, und während Apache HTTP Server kann bis zu 4.000 Zeichen in einer URL verarbeiten,[5] Microsoft Internet Explorer ist auf 2.048 Zeichen in jeder URL begrenzt.[6] Ebenso sollte HTTP -GET nicht verwendet werden, wenn vertrauliche Informationen wie Benutzernamen und Passwörter zusammen mit anderen Daten eingereicht werden müssen, um die Anfrage zu vervollständigen. Selbst wenn Https wird verwendet, und verhindern, dass die Daten, die unter dem Transport abgefangen werden, der Browserverlauf und die Protokolle des Webservers wahrscheinlich die vollständige URL in Plaintext enthalten, die möglicherweise aufgedeckt werden kann, wenn eines Systems gehackt wird. In diesen Fällen sollte HTTP -Post verwendet werden.[7]
Verwenden Sie für das Senden von Webformularen
Wenn ein Webbrowser eine Postanforderung von a sendet Web-Formular Element, die Standardeinstellung Internet -Medientyp ist "Anwendung/X-WWW-Form-Urlencoded".[8] Dies ist ein Format für die Codierung Schlüsselwertpaare mit möglicherweise doppelten Schlüssel. Jedes Schlüsselwertpaar wird durch ein '&'-Zeichen getrennt, und jeder Schlüssel wird von seinem Wert durch ein '=' Zeichen getrennt. Tasten und Werte werden beide durch Austausch von Räumen durch das '+' Zeichen und dann durch die Verwendung prozentualer Kodierung bei allen anderen Nichtsalphanumerisch[9] Figuren.
Zum Beispiel die Schlüsselwertpaare
Name: Gareth Wylie Age: 24 Formel: a+b == 21
sind codiert wie
Name = Gareth+Wylie & Alter = 24 & Formel = A%2BB+%3D%3D+21
Beginnend mit HTML 4.0 können Formulare auch Daten in einreichen Mehrfachfrist/Formdaten wie in RFC 2388 definiert (siehe auch RFC 1867 für eine frühere experimentelle Version, die als Erweiterung auf HTML 2.0 definiert und in HTML 3.2 erwähnt wird).
Der Sonderfall eines Beitrags auf derselben Seite, zu dem das Formular gehört Postback.
Auswirkungen auf den Serverzustand
Per RFC 7231 ist die Post -Methode nicht idempotent, was bedeutet, dass mehrere identische Anforderungen möglicherweise nicht den gleichen Effekt haben als nur einmal die Anforderung. Post ist daher für Anfragen geeignet, die die ändern Zustand Jedes Mal, wenn sie durchgeführt werden, senden Sie beispielsweise in einer Online -Umfrage einen Kommentar an einen Blog -Beitrag oder eine Abstimmung. Get wird definiert sein nullipotentohne Nebenwirkungen und idempotente Operationen haben "keine Nebenwirkungen auf die zweiten oder zukünftigen Anfragen".[10][11] Deshalb, Webcrawler Zum Beispiel verwenden Suchmaschinen -Indexer normalerweise ausschließlich die Get- und Kopfmethoden, um zu verhindern, dass ihre automatisierten Anforderungen solche Aktionen ausführen.
Es gibt jedoch Gründe, warum Post auch für idempotente Anfragen verwendet wird, insbesondere für die Anforderung sehr lang. Aufgrund von URL -Beschränkungen die Abfragezeichenfolge Die Erzeugung der GET -Methode kann sehr lang werden, insbesondere aufgrund prozentualer Kodierung.[10]
Verweise
- ^ a b "Hypertext -Transferprotokoll (HTTP/1.1): Semantik und Inhalt - 4.3.3 Post". Abgerufen 2014-07-24.
Die Post -Methode fordert, dass der Zielressourcenverfahren die in der Anforderung entsprechende Darstellung gemäß der eigenen spezifischen Semantik der Ressource verarbeitet.
- ^ Berners-Lee, Tim (1998). "Coole URIs verändern sich nicht". W3c. Abgerufen 17. Oktober 2012.
- ^ Friedman, Mike (2009). "Verwenden von HTTP -Put- und Löschen von Methoden in Webanwendungen". Abgerufen 17. Oktober 2012.
- ^ "Formulare". HTML 4.01 -Spezifikation. W3c. 1999. Abgerufen 17. Oktober 2012.
- ^ Rigsby, Dan (2008). "Ruhe und maximale URL -Größe". Archiviert von das Original am 4. November 2012. Abgerufen 17. Oktober 2012.
- ^ "Die maximale URL -Länge beträgt 2.048 Zeichen im Internet Explorer". Microsoft.
- ^ "Hypertext -Transferprotokoll (HTTP/1.1): Semantik und Inhalt - 9.4 Offenlegung sensibler Informationen in URIs". RFC 7231. Abgerufen 2014-07-25.
- ^ Berners-Lee, Tim; Connolly, Dan (22. September 1995). "Hypertext Markup Sprache - 2.0 - Formulare". World Wide Web Konsortium. Abgerufen 15. Januar 2011.
- ^ "Formulare in HTML -Dokumenten".
- ^ a b Korpela, Jukka (28. September 2003). "Methoden erhalten und posten in HTML -Formen - was ist der Unterschied?". Tampere University of Technology. Abgerufen 15. Januar 2011.
- ^ RFC 7231, 4.2.1 sichere Methoden
Externe Links
- Einfache Definition von Post
- Post Verb in der HTTP -Spezifikation
- "Speicher in Google Cloud -Plattform bereitstellen", Google Cloud Certified Associate Cloud Engineer Study Guide, Wiley, 2019-03-28, S. 275–308, doi:10.1002/9781119564409.Ch12, ISBN 9781119564409, S2CID 241576882