wake-up-neo.net

Was bedeutet http-Anfragekörper?

Beim Lesen von Informationen über POST und get Methods here gibt es eine Anweisung wie "Wenn die Post-Methode verwendet wird, wird HTTP-Anforderung verwendet. 

HTTP-Body-Daten sind die Datenbytes, die in einer HTTP-Transaktionsnachricht unmittelbar nach den Headern übertragen werden, sofern vorhanden (im Fall von HTTP/0.9 werden keine Header übertragen).

Die meisten HTTP-Anforderungen sind GET-Anforderungen ohne Körper. Das Simulieren von Anforderungen mit Körpern ist jedoch wichtig, um den Proxy-Code richtig hervorzuheben und verschiedene Hooks zu testen, die mit solchen Anforderungen arbeiten. Die meisten HTTP-Anforderungen mit Körpern verwenden die Anforderungsmethode POST oder PUT. 

Nachrichtentext

Der Nachrichtentextteil ist optional für eine HTTP-Nachricht. Wenn er jedoch verfügbar ist, wird er verwendet, um den mit der Anforderung oder Antwort verknüpften Entitätskörper zu transportieren. Wenn ein Entitätskörper zugeordnet ist, geben die Headerzeilen Content-Type und Content-Length normalerweise die Art des verknüpften Körpers an.

Ein Nachrichtentext ist derjenige, der die tatsächlichen HTTP-Anforderungsdaten (einschließlich Formulardaten und hochgeladenen usw.) und HTTP-Antwortdaten vom Server (einschließlich Dateien, Bilder usw.) übermittelt. Folgendes ist ein einfacher Inhalt eines Nachrichtentexts:

<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>

Weitere Informationen zu HTTP-Nachrichten und -Körpern finden Sie unter w3org link

39
Mazzu

Körperschaften lassen sich grob in zwei Kategorien einteilen:

  1. Einzelressourcenkörper, bestehend aus einer einzigen Datei, die durch die beiden Header definiert wird: Content-Type und Content-Length .
  2. Mehrere Ressourcenkörper , bestehend aus einem mehrteiligen Körper, die jeweils unterschiedliche Informationen enthalten. Dies ist normalerweise mit HTML Forms verbunden.

Der folgende <form>:

<form action="http://localhost:8000/" method="post" enctype="multipart/form-data">
  <label>Name: <input name="myTextField" value="Test"></label>
  <label><input type="checkbox" name="myCheckBox"> Check</label>
  <label>Upload file: <input type="file" name="myFile" value="test.txt"></label>
  <button>Send the file</button>
</form>

wird diesen HTTP-Nachrichtentext senden:

POST / HTTP/1.1
Host: localhost:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=---------------------------8721656041911415653955004498
Content-Length: 465

-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myTextField"

Test
-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myCheckBox"

on
-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myFile"; filename="test.txt"
Content-Type: text/plain

Simple file.
-----------------------------8721656041911415653955004498--

Quellen:

0
August Jelemson