Vier gängige Methoden zur Übermittlung von Daten per 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>
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
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
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–
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':’test’, ‘sub’ : [1,2,3]};$http.post(url, data).success(function(result) { …});
Die letzte gesendete Anfrage lautet:
Content-Type: application/json;charset=utf-8 {“title”:”test”,”sub”:[1,2,3]}
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>
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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

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

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

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.

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

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

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,
