Heim Web-Frontend js-Tutorial Vier gängige Methoden zur Übermittlung von Daten per POST

Vier gängige Methoden zur Übermittlung von Daten per POST

Jun 17, 2017 pm 05:11 PM
post 常见 提交 数据

Vier gängige Methoden der POST-Übermittlung von Daten

Wir wissen, dass das HTTP-Protokoll im ASCII-Code übertragen wird und eine Spezifikation der Anwendungsschicht ist, die auf dem TCP/IP-Protokoll basiert. Die Spezifikation unterteilt HTTP-Anfragen in drei Teile: Statuszeile, Anforderungsheader und Nachrichtentext. Ähnlich wie folgt:

<method> <request-url> <version><headers>
<entity-body></entity-body></headers></version></request-url></method>
Nach dem Login kopieren

Das Protokoll legt fest, dass die von POST übermittelten Daten im Nachrichtentext (Entity-Body) platziert werden müssen, das Protokoll gibt jedoch nicht an, welche Codierungsmethode die Daten verwenden verwenden muss. Tatsächlich können Entwickler das Format des Nachrichtentexts vollständig selbst bestimmen, solange die letzte gesendete HTTP-Anfrage dem oben genannten Format entspricht.

Vor dem Versenden der Daten ist es jedoch nur dann sinnvoll, wenn der Server sie erfolgreich analysiert. Allgemeine serverseitige Sprachen wie PHP, Python usw. und ihre Frameworks verfügen über integrierte Funktionen zum automatischen Parsen gängiger Datenformate. Der Server lernt normalerweise anhand des Felds „Content-Type“ im Anforderungsheader, wie der Nachrichtentext in der Anfrage codiert ist, und analysiert dann den Text. Wenn es also um das POST-Übermittlungsdatenschema geht, besteht es aus zwei Teilen: Inhaltstyp und Codierungsmethode für den Nachrichtentext. Beginnen wir mit der offiziellen Vorstellung.

application/x-www-form-urlencoded
Nach dem Login kopieren

Dies dürfte die gebräuchlichste Methode zur Übermittlung von Daten per POST sein. Wenn für das native Formular des Browsers das Attribut „enctype“ nicht festgelegt ist, werden die Daten schließlich im Modus „application/x-www-form-urlencoded“ übermittelt. Die Anfrage ähnelt der folgenden (irrelevante Anfrageheader werden in diesem Artikel weggelassen):

Content-Type: application/x-www-form-urlencoded;charset=utf-8
title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3
Nach dem Login kopieren

Erstens wird der Inhaltstyp als application/x-www-form-urlencoded angegeben; zweitens wird der übermittelte Typ angegeben Die Daten werden gemäß key1=val1&key2=val2 codiert, und sowohl key als auch val werden URL-transcodiert. Die meisten serverseitigen Sprachen unterstützen diese Methode gut. Beispielsweise kann in PHP $_POST[‘title’] den Wert von title abrufen und $_POST[‘sub’] kann das Unterarray abrufen.

Oft verwenden wir diese Methode auch bei der Übermittlung von Daten über Ajax. Beispielsweise lautet der Standardwert von Content-Type im Ajax von jquery und QWrap „application/x-www-form-urlencoded;charset=utf-8“.

multipart/form-data

Dies ist eine weitere gängige Methode zur Übermittlung von POST-Daten. Wenn wir ein Formular zum Hochladen von Dateien verwenden, muss der Enctyped des Formulars diesem Wert entsprechen. Schauen wir uns direkt ein Anfragebeispiel an:

Content-Type:multipart/form-data; boundary=—-WebKitFormBoundaryrGKCBY7qhFd3TrwA
——WebKitFormBoundaryrGKCBY7qhFd3TrwAContent-Disposition: form-data; name=”text”
title——WebKitFormBoundaryrGKCBY7qhFd3TrwAContent-Disposition: form-data; name=”file”; filename=”chrome.png”Content-Type: image/png
PNG … content of chrome.png …——WebKitFormBoundaryrGKCBY7qhFd3TrwA–
Nach dem Login kopieren

Dieses Beispiel ist etwas komplizierter. Zunächst wird eine Grenze generiert, um verschiedene Felder zu trennen. Um Duplikate mit dem Textinhalt zu vermeiden, ist die Grenze sehr lang und kompliziert. Dann gibt Content-Type an, dass die Daten mit Mutipart/Form-Data codiert sind und was der Grenzinhalt dieser Anfrage ist. Der Nachrichtentext ist entsprechend der Anzahl der Felder in mehrere Teile mit ähnlicher Struktur unterteilt. Jeder Teil beginnt mit –boundary, gefolgt von Inhaltsbeschreibungsinformationen, gefolgt von einem Wagenrücklauf und schließlich dem spezifischen Inhalt des Feldes (Text oder Binär). Wenn eine Datei übertragen wird, geben Sie auch den Dateinamen und Informationen zum Dateityp an. Der Nachrichtentext endet mit dem Flag –boundary–. Eine detaillierte Definition von Mutipart-/Formulardaten finden Sie unter rfc1867.

Diese Methode wird im Allgemeinen zum Hochladen von Dateien verwendet und wird auch von den wichtigsten Serversprachen gut unterstützt.

Die beiden oben genannten Methoden für POST-Daten werden von Browsern nativ unterstützt, und derzeit unterstützen native Formulare nur diese beiden Methoden. Da jedoch immer mehr Websites, insbesondere WebApps, Ajax für die Dateninteraktion verwenden, können wir vollständig neue Datenübermittlungsmethoden definieren, um die Entwicklung komfortabler zu gestalten.

application/json

application/json Dieser Content-Type ist als Response-Header sicherlich jedem bekannt. Tatsächlich verwenden ihn immer mehr Menschen als Anforderungsheader, um dem Server mitzuteilen, dass der Nachrichtentext eine serialisierte JSON--Zeichenfolge ist. Aufgrund der Beliebtheit der JSON-Spezifikation unterstützen alle gängigen Browser mit Ausnahme niedrigerer Versionen von IE nativ JSON.stringify. Serverseitige Sprachen verfügen auch über Funktionen zur Verarbeitung von JSON, sodass Sie bei der Verwendung von JSON keine Probleme haben.

Es ist auch nützlich, dass das JSON-Format viel komplexere strukturierte Daten unterstützt als Schlüssel-Wert-Paare. Ich erinnere mich, dass ich vor ein paar Jahren an einem Projekt gearbeitet habe und die Daten, die übermittelt werden mussten, eine sehr tiefe Ebene hatten. Ich habe die Daten in JSON serialisiert und übermittelt. Aber damals habe ich die JSON-Zeichenfolge als Wert verwendet, sie immer noch in das Schlüssel-Wert-Paar eingefügt und sie im x-www-form-urlencoded-Modus übermittelt.

Google 的 AngularJS 中的 Ajax 功能,默认就是提交 JSON 字符串。例如下面这段代码:
var data = {‘title&#39;:’test’, ‘sub’ : [1,2,3]};$http.post(url, data).success(function(result) {    …});
Nach dem Login kopieren

Die letzte gesendete Anfrage lautet:

Content-Type: application/json;charset=utf-8
{“title”:”test”,”sub”:[1,2,3]}
Nach dem Login kopieren

Diese Lösung kann problemlos komplexe strukturierte Daten übermitteln und eignet sich besonders für RESTful-Schnittstellen. Wichtige Paketerfassungstools wie die Chrome-eigenen Entwicklertools Firebug und Fiddler zeigen JSON-Daten in einer Baumstruktur an, was sehr benutzerfreundlich ist. Einige serverseitige Sprachen unterstützen diese Methode jedoch noch nicht. PHP kann beispielsweise keinen Inhalt aus der obigen Anfrage über das $_POST-Objekt abrufen. Zu diesem Zeitpunkt müssen Sie sich selbst darum kümmern: Wenn der Inhaltstyp im Anforderungsheader application/json ist, rufen Sie den ursprünglichen Eingabestream von php://input ab und decodieren Sie ihn dann json_decode in ein Objekt . Einige PHP-Frameworks haben bereits damit begonnen.

当然 AngularJS 也可以配置为使用 x-www-form-urlencoded 方式提交数据。如有需要,可以参考这篇文章。

text/xml

我的博客之前提到过 XML-RPC(XML Remote Procedure Call)。它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。典型的 XML-RPC 请求是这样的:

Content-Type: text/xml
<!–?xml version=”1.0″?–><methodcall>    <methodname>examples.getStateName</methodname>    <params>        <param>            <value><i4>41</i4></value>            </params></methodcall>
Nach dem Login kopieren

XML-RPC 协议简单、功能够用,各种语言的实现都有。它的使用也很广泛,如 WordPress 的 XML-RPC Api,搜索引擎的 ping 服务等等。JavaScript 中,也有现成的库支持以这种方式进行数据交互,能很好的支持已有的 XML-RPC 服务。不过,我个人觉得 XML 结构还是过于臃肿,一般场景用 JSON 会更灵活方便。

Das obige ist der detaillierte Inhalt vonVier gängige Methoden zur Übermittlung von Daten per POST. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwenden Sie ddrescue, um Daten unter Linux wiederherzustellen Verwenden Sie ddrescue, um Daten unter Linux wiederherzustellen Mar 20, 2024 pm 01:37 PM

DDREASE ist ein Tool zum Wiederherstellen von Daten von Datei- oder Blockgeräten wie Festplatten, SSDs, RAM-Disks, CDs, DVDs und USB-Speichergeräten. Es kopiert Daten von einem Blockgerät auf ein anderes, wobei beschädigte Blöcke zurückbleiben und nur gute Blöcke verschoben werden. ddreasue ist ein leistungsstarkes Wiederherstellungstool, das vollständig automatisiert ist, da es während der Wiederherstellungsvorgänge keine Unterbrechungen erfordert. Darüber hinaus kann es dank der ddasue-Map-Datei jederzeit gestoppt und fortgesetzt werden. Weitere wichtige Funktionen von DDREASE sind: Es überschreibt die wiederhergestellten Daten nicht, füllt aber die Lücken im Falle einer iterativen Wiederherstellung. Es kann jedoch gekürzt werden, wenn das Tool explizit dazu aufgefordert wird. Stellen Sie Daten aus mehreren Dateien oder Blöcken in einer einzigen wieder her

Open Source! Jenseits von ZoeDepth! DepthFM: Schnelle und genaue monokulare Tiefenschätzung! Open Source! Jenseits von ZoeDepth! DepthFM: Schnelle und genaue monokulare Tiefenschätzung! Apr 03, 2024 pm 12:04 PM

0.Was bewirkt dieser Artikel? Wir schlagen DepthFM vor: ein vielseitiges und schnelles generatives monokulares Tiefenschätzungsmodell auf dem neuesten Stand der Technik. Zusätzlich zu herkömmlichen Tiefenschätzungsaufgaben demonstriert DepthFM auch hochmoderne Fähigkeiten bei nachgelagerten Aufgaben wie dem Tiefen-Inpainting. DepthFM ist effizient und kann Tiefenkarten innerhalb weniger Inferenzschritte synthetisieren. Lassen Sie uns diese Arbeit gemeinsam lesen ~ 1. Titel der Papierinformationen: DepthFM: FastMonocularDepthEstimationwithFlowMatching Autor: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Google ist begeistert: JAX-Leistung übertrifft Pytorch und TensorFlow! Es könnte die schnellste Wahl für das GPU-Inferenztraining werden Google ist begeistert: JAX-Leistung übertrifft Pytorch und TensorFlow! Es könnte die schnellste Wahl für das GPU-Inferenztraining werden Apr 01, 2024 pm 07:46 PM

Die von Google geförderte Leistung von JAX hat in jüngsten Benchmark-Tests die von Pytorch und TensorFlow übertroffen und belegt bei 7 Indikatoren den ersten Platz. Und der Test wurde nicht auf der TPU mit der besten JAX-Leistung durchgeführt. Obwohl unter Entwicklern Pytorch immer noch beliebter ist als Tensorflow. Aber in Zukunft werden möglicherweise mehr große Modelle auf Basis der JAX-Plattform trainiert und ausgeführt. Modelle Kürzlich hat das Keras-Team drei Backends (TensorFlow, JAX, PyTorch) mit der nativen PyTorch-Implementierung und Keras2 mit TensorFlow verglichen. Zunächst wählen sie eine Reihe von Mainstream-Inhalten aus

Langsame Internetgeschwindigkeiten für Mobilfunkdaten auf dem iPhone: Korrekturen Langsame Internetgeschwindigkeiten für Mobilfunkdaten auf dem iPhone: Korrekturen May 03, 2024 pm 09:01 PM

Stehen Sie vor einer Verzögerung oder einer langsamen mobilen Datenverbindung auf dem iPhone? Normalerweise hängt die Stärke des Mobilfunk-Internets auf Ihrem Telefon von mehreren Faktoren ab, wie z. B. der Region, dem Mobilfunknetztyp, dem Roaming-Typ usw. Es gibt einige Dinge, die Sie tun können, um eine schnellere und zuverlässigere Mobilfunk-Internetverbindung zu erhalten. Fix 1 – Neustart des iPhone erzwingen Manchmal werden durch einen erzwungenen Neustart Ihres Geräts viele Dinge zurückgesetzt, einschließlich der Mobilfunkverbindung. Schritt 1 – Drücken Sie einfach einmal die Lauter-Taste und lassen Sie sie los. Drücken Sie anschließend die Leiser-Taste und lassen Sie sie wieder los. Schritt 2 – Der nächste Teil des Prozesses besteht darin, die Taste auf der rechten Seite gedrückt zu halten. Lassen Sie das iPhone den Neustart abschließen. Aktivieren Sie Mobilfunkdaten und überprüfen Sie die Netzwerkgeschwindigkeit. Überprüfen Sie es erneut. Fix 2 – Datenmodus ändern 5G bietet zwar bessere Netzwerkgeschwindigkeiten, funktioniert jedoch besser, wenn das Signal schwächer ist

Die Vitalität der Superintelligenz erwacht! Aber mit der Einführung der sich selbst aktualisierenden KI müssen sich Mütter keine Sorgen mehr über Datenengpässe machen Die Vitalität der Superintelligenz erwacht! Aber mit der Einführung der sich selbst aktualisierenden KI müssen sich Mütter keine Sorgen mehr über Datenengpässe machen Apr 29, 2024 pm 06:55 PM

Ich weine zu Tode. Die Daten im Internet reichen überhaupt nicht aus. Das Trainingsmodell sieht aus wie „Die Tribute von Panem“, und KI-Forscher auf der ganzen Welt machen sich Gedanken darüber, wie sie diese datenhungrigen Esser ernähren sollen. Dieses Problem tritt insbesondere bei multimodalen Aufgaben auf. Zu einer Zeit, als sie ratlos waren, nutzte ein Start-up-Team der Abteilung der Renmin-Universität von China sein eigenes neues Modell, um als erstes in China einen „modellgenerierten Datenfeed selbst“ in die Realität umzusetzen. Darüber hinaus handelt es sich um einen zweigleisigen Ansatz auf der Verständnisseite und der Generierungsseite. Beide Seiten können hochwertige, multimodale neue Daten generieren und Datenrückmeldungen an das Modell selbst liefern. Was ist ein Modell? Awaker 1.0, ein großes multimodales Modell, das gerade im Zhongguancun-Forum erschienen ist. Wer ist das Team? Sophon-Motor. Gegründet von Gao Yizhao, einem Doktoranden an der Hillhouse School of Artificial Intelligence der Renmin University.

Tesla-Roboter arbeiten in Fabriken, Musk: Der Freiheitsgrad der Hände wird dieses Jahr 22 erreichen! Tesla-Roboter arbeiten in Fabriken, Musk: Der Freiheitsgrad der Hände wird dieses Jahr 22 erreichen! May 06, 2024 pm 04:13 PM

Das neueste Video von Teslas Roboter Optimus ist veröffentlicht und er kann bereits in der Fabrik arbeiten. Bei normaler Geschwindigkeit sortiert es Batterien (Teslas 4680-Batterien) so: Der Beamte hat auch veröffentlicht, wie es bei 20-facher Geschwindigkeit aussieht – auf einer kleinen „Workstation“, pflücken und pflücken und pflücken: Dieses Mal wird es freigegeben. Eines der Highlights Der Vorteil des Videos besteht darin, dass Optimus diese Arbeit in der Fabrik völlig autonom und ohne menschliches Eingreifen während des gesamten Prozesses erledigt. Und aus Sicht von Optimus kann es auch die krumme Batterie aufnehmen und platzieren, wobei der Schwerpunkt auf der automatischen Fehlerkorrektur liegt: In Bezug auf die Hand von Optimus gab der NVIDIA-Wissenschaftler Jim Fan eine hohe Bewertung ab: Die Hand von Optimus ist der fünffingrige Roboter der Welt am geschicktesten. Seine Hände sind nicht nur taktil

Der erste Roboter erscheint, der menschliche Aufgaben autonom erledigt, mit fünf flexiblen Fingern und übermenschlicher Geschwindigkeit, und große Modelle unterstützen das Training im virtuellen Raum Der erste Roboter erscheint, der menschliche Aufgaben autonom erledigt, mit fünf flexiblen Fingern und übermenschlicher Geschwindigkeit, und große Modelle unterstützen das Training im virtuellen Raum Mar 11, 2024 pm 12:10 PM

Diese Woche gab FigureAI, ein Robotikunternehmen, an dem OpenAI, Microsoft, Bezos und Nvidia beteiligt sind, bekannt, dass es fast 700 Millionen US-Dollar an Finanzmitteln erhalten hat und plant, im nächsten Jahr einen humanoiden Roboter zu entwickeln, der selbstständig gehen kann. Und Teslas Optimus Prime hat immer wieder gute Nachrichten erhalten. Niemand zweifelt daran, dass dieses Jahr das Jahr sein wird, in dem humanoide Roboter explodieren. SanctuaryAI, ein in Kanada ansässiges Robotikunternehmen, hat kürzlich einen neuen humanoiden Roboter auf den Markt gebracht: Phoenix. Beamte behaupten, dass es viele Aufgaben autonom und mit der gleichen Geschwindigkeit wie Menschen erledigen kann. Pheonix, der weltweit erste Roboter, der Aufgaben autonom in menschlicher Geschwindigkeit erledigen kann, kann jedes Objekt sanft greifen, bewegen und elegant auf der linken und rechten Seite platzieren. Es kann Objekte autonom identifizieren

Die U.S. Air Force präsentiert ihren ersten KI-Kampfjet mit großem Aufsehen! Der Minister führte die Testfahrt persönlich durch, ohne in den gesamten Prozess einzugreifen, und 100.000 Codezeilen wurden 21 Mal getestet. Die U.S. Air Force präsentiert ihren ersten KI-Kampfjet mit großem Aufsehen! Der Minister führte die Testfahrt persönlich durch, ohne in den gesamten Prozess einzugreifen, und 100.000 Codezeilen wurden 21 Mal getestet. May 07, 2024 pm 05:00 PM

Kürzlich wurde die Militärwelt von der Nachricht überwältigt: US-Militärkampfflugzeuge können jetzt mithilfe von KI vollautomatische Luftkämpfe absolvieren. Ja, erst kürzlich wurde der KI-Kampfjet des US-Militärs zum ersten Mal der Öffentlichkeit zugänglich gemacht und sein Geheimnis gelüftet. Der vollständige Name dieses Jägers lautet „Variable Stability Simulator Test Aircraft“ (VISTA). Er wurde vom Minister der US-Luftwaffe persönlich geflogen, um einen Eins-gegen-eins-Luftkampf zu simulieren. Am 2. Mai startete US-Luftwaffenminister Frank Kendall mit einer X-62AVISTA auf der Edwards Air Force Base. Beachten Sie, dass während des einstündigen Fluges alle Flugaktionen autonom von der KI durchgeführt wurden! Kendall sagte: „In den letzten Jahrzehnten haben wir über das unbegrenzte Potenzial des autonomen Luft-Luft-Kampfes nachgedacht, aber es schien immer unerreichbar.“ Nun jedoch,

See all articles