Inhaltsverzeichnis
0x01.About
0x02.Content-Type
0x03.application/x-www-form-urlencoded
0x04.multipart/form-data
0x05.text/xml
0x06.application/json
Heim Web-Frontend js-Tutorial So verstehen Sie den Inhaltstyp in HTTP

So verstehen Sie den Inhaltstyp in HTTP

Sep 14, 2017 am 11:03 AM
http 理解

0x01.About

Restful API-Header-Plug-in anzeigen: Chrome-Plug-in REST Konsole und Tool zum Senden von Restful API: Chrome-Plug-in POST Man

In der HTTP 1.1-Spezifikation umfassen HTTP-Anforderungsmethoden OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

Normalerweise verwenden wir nur GET und POST, aber für Restful Entsprechend Gemäß der API-Spezifikation sollte die PUT-Methode zum Anfordern von Ressourcen und die DELETE-Methode zum Löschen von Ressourcen verwendet werden.

Senden Sie beispielsweise ein DELETE-Paket:

http://example.com/my/resource?id=12345
Nach dem Login kopieren

Dieses Paket hat nur einen Header und keinen Text Besprechen Sie ein paar Das Format der Körperübertragung des Pakets, das den Körper enthält.


0x02.Content-Type

Content-Type wird verwendet, um den Inhaltstyp anzugeben, der sich im Allgemeinen auf den Inhaltstyp bezieht, der auf der Webseite vorhanden ist Das Attribut gibt den Inhaltstyp der HTTP-Anforderung und -Antwort an. Wenn ContentType nicht angegeben ist, wird standardmäßig text/html verwendet.

In Nginx gibt es eine Konfigurationsdatei mime.types, die hauptsächlich das Dateiformat des Inhaltstyps angibt.

Im Folgenden sind einige gängige Inhaltstypen aufgeführt:

1.text/html
2.text/plain
3.text/css
4.text/javascript
5.application/x-www-form-urlencoded
6.multipart/form-data
7.application/json
8.application/xml
...

Die ersten paar sind leicht zu verstehen, sie sind alle Dateitypen von HTML, CSS und Javascript, und die letzten vier sind POST-Übermittlungsmethoden.


0x03.application/x-www-form-urlencoded

application/x-www-form-urlencoded ist eine häufig verwendete Formularübermittlungsmethode oder die JS-Übermittlung erfolgt standardmäßig über diese Methode. Auf diese Weise

Zum Beispiel ein einfaches Formular:

<form enctype="application/x-www-form-urlencoded" action="http://homeway.me/post.php" method="POST">
    <input type="text" name="name" value="homeway">
    <input type="text" name="key" value="nokey">
    <input type="submit" value="submit">
</form>
Nach dem Login kopieren

Dann ist der vom Server empfangene Roh-Header ähnlich:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Encoding:gzip, deflateAccept-Language:zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4,gl;q=0.2,de;q=0.2Cache-Control:no-cacheConnection:keep-aliveContent-Length:17Content-Type:application/x-www-form-urlencoded
Nach dem Login kopieren

Dann der Roh-Header Körper vom Server empfangen Es wird sein, name=homeway&key=nokey, in PHP können Sie Daten in Array-Form über $_POST abrufen.


0x04.multipart/form-data

multipart/form-data用在发送文件的POST包。

这里假设我用python的request发送一个文件给服务器:

data = {    
"key1": "123",    
"key2": "456",
}
files = {&#39;file&#39;: open(&#39;index.py&#39;, &#39;rb&#39;)}
res = requests.post(url="http://localhost/upload", method="POST", data=data, files=files)
print res
Nach dem Login kopieren

通过工具,可以看到我发送的数据内容如下:

POST http://www.homeway.me HTTP/1.1Content-Type:multipart/form-data; boundary=------WebKitFormBoundaryOGkWPJsSaJCPWjZP
------WebKitFormBoundaryOGkWPJsSaJCPWjZP
Content-Disposition: form-data; name="key2"456------WebKitFormBoundaryOGkWPJsSaJCPWjZP
Content-Disposition: form-data; name="key1"123------WebKitFormBoundaryOGkWPJsSaJCPWjZP
Content-Disposition: form-data; name="file"; filename="index.py"
Nach dem Login kopieren

这里Content-Type告诉我们,发包是以multipart/form-data格式来传输,另外,还有boundary用于分割数据。

当文件太长,HTTP无法在一个包之内发送完毕,就需要分割数据,分割成一个一个chunk发送给服务端,

那么--用于区分数据快,而后面的数据633e61ebf351484f9124d63ce76d8469就是标示区分包作用。


0x05.text/xml

微信用的是这种数据格式发送请求的。

POST http://www.homeway.me HTTP/1.1 
Content-Type: text/xml<?xml version="1.0"?><resource>
    <id>123</id>
    <params>
        <name>
            <value>homeway</value>
        </name>
        <age>
            <value>22</value>
        </age>
    </params></resource>
Nach dem Login kopieren

php中$_POST只能读取application/x-www-form-urlencoded数据,$_FILES只能读取multipart/form-data类型数据,

那么,要读取text/xml格式的数据,可以用:

$file = fopen(&#39;php://input&#39;, &#39;rb&#39;);
$data = fread($file, length);
fclose($file);
Nach dem Login kopieren

或者

$data = file_get_contents('php://input');


0x06.application/json

Daten im JSON-Format an den Server senden. Zuerst habe ich versucht, das application/json-Formatpaket über Curl an den Server zu senden >

Die Daten, die ich erhalten habe, lauten jedoch wie folgt:

-----------------------------------------e1e1406176ee348a Inhaltsdisposition: Formulardaten; Name="nid" 2 ------------------------e1e1406176ee348a Inhaltsdisposition: Formulardatenname; ="uuid" cf9dc994-a4e7-3ad6-bc54-41965b2a0dd7 -----------e1e1406176ee348a Inhaltsdisposition: form-data = "access_token" 956731586df41229dbfec08dd5d54eedb98d73d2 --------- ----e1e1406176ee348a--

Später habe ich herausgefunden, dass es in der HTTP-Kommunikation kein sogenanntes JSON gibt, sondern eine String-Konvertierung Es wird einfach zu JSON, das heißt,

kann als application/json, eine gewöhnliche Zeichenfolge, verstanden werden. text/plain

Der Grund, warum es so viele Probleme gibt

, ist wahrscheinlich das Konvertierungsproblem bei der Übertragung des PHP-Arrays in -------

Das obige ist der detaillierte Inhalt vonSo verstehen Sie den Inhaltstyp in HTTP. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Was bedeutet der http-Statuscode 520? Was bedeutet der http-Statuscode 520? Oct 13, 2023 pm 03:11 PM

Der HTTP-Statuscode 520 bedeutet, dass der Server bei der Verarbeitung der Anfrage einen unbekannten Fehler festgestellt hat und keine genaueren Informationen bereitstellen kann. Wird verwendet, um darauf hinzuweisen, dass bei der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist, der durch Serverkonfigurationsprobleme, Netzwerkprobleme oder andere unbekannte Gründe verursacht werden kann. Dies wird normalerweise durch Serverkonfigurationsprobleme, Netzwerkprobleme, Serverüberlastung oder Codierungsfehler verursacht. Wenn Sie auf einen Fehler mit dem Statuscode 520 stoßen, wenden Sie sich am besten an den Website-Administrator oder das technische Support-Team, um weitere Informationen und Unterstützung zu erhalten.

Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Feb 18, 2024 pm 08:41 PM

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Oct 09, 2023 pm 09:21 PM

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Im heutigen Internetzeitalter ist Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der Softwareentwicklung geworden. In C# treten normalerweise einige Netzwerkkommunikationsprobleme auf, z. B. die Sicherheit der Datenübertragung, die Stabilität der Netzwerkverbindung usw. In diesem Artikel werden häufig auftretende Netzwerkkommunikations- und Sicherheitsprobleme in C# ausführlich erläutert und entsprechende Lösungen und Codebeispiele bereitgestellt. 1. Netzwerkkommunikationsprobleme Unterbrechung der Netzwerkverbindung: Während des Netzwerkkommunikationsprozesses kann die Netzwerkverbindung unterbrochen werden, was zu Problemen führen kann

HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort Dec 26, 2023 am 10:25 AM

HTTP-Statuscode 200: Erkunden Sie die Bedeutung und den Zweck erfolgreicher Antworten. HTTP-Statuscodes sind numerische Codes, die den Status einer Serverantwort angeben. Darunter zeigt der Statuscode 200 an, dass die Anfrage vom Server erfolgreich verarbeitet wurde. In diesem Artikel wird die spezifische Bedeutung und Verwendung des HTTP-Statuscodes 200 untersucht. Lassen Sie uns zunächst die Klassifizierung von HTTP-Statuscodes verstehen. Statuscodes sind in fünf Kategorien unterteilt, nämlich 1xx, 2xx, 3xx, 4xx und 5xx. Unter diesen zeigt 2xx eine erfolgreiche Antwort an. Und 200 ist der häufigste Statuscode in 2xx

http-Anfrage 415-Fehlerlösung http-Anfrage 415-Fehlerlösung Nov 14, 2023 am 10:49 AM

Lösung: 1. Überprüfen Sie den Inhaltstyp im Anforderungsheader. 3. Verwenden Sie das entsprechende Codierungsformat. 5. Überprüfen Sie die serverseitige Unterstützung.

Wie implementiert man HTTP-Streaming mit C++? Wie implementiert man HTTP-Streaming mit C++? May 31, 2024 am 11:06 AM

Wie implementiert man HTTP-Streaming in C++? Erstellen Sie einen SSL-Stream-Socket mit Boost.Asio und der asiohttps-Clientbibliothek. Stellen Sie eine Verbindung zum Server her und senden Sie eine HTTP-Anfrage. Empfangen Sie HTTP-Antwortheader und drucken Sie sie aus. Empfängt den HTTP-Antworttext und gibt ihn aus.

Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Welcher Statuscode wird bei einem HTTP-Anfrage-Timeout zurückgegeben? Feb 18, 2024 pm 01:58 PM

Die HTTP-Anfrage läuft ab und der Server gibt häufig den Statuscode 504GatewayTimeout zurück. Dieser Statuscode zeigt an, dass der Server bei der Ausführung einer Anforderung immer noch nicht in der Lage ist, die für die Anforderung erforderlichen Ressourcen abzurufen oder die Verarbeitung der Anforderung nach einer gewissen Zeit nicht abzuschließen. Es handelt sich um einen Statuscode der 5xx-Reihe, der darauf hinweist, dass beim Server ein vorübergehendes Problem oder eine Überlastung aufgetreten ist, was dazu führt, dass die Anfrage des Clients nicht korrekt verarbeitet werden kann. Im HTTP-Protokoll haben verschiedene Statuscodes spezifische Bedeutungen und Verwendungszwecke, und der Statuscode 504 wird verwendet, um Probleme mit der Zeitüberschreitung von Anfragen anzuzeigen. im Kunden

So beheben Sie den HTTP 503-Fehler So beheben Sie den HTTP 503-Fehler Mar 12, 2024 pm 03:25 PM

Lösung: 1. Wiederholen: Sie können eine Weile warten und es erneut versuchen, oder die Seite aktualisieren. 2. Überprüfen Sie die Serverauslastung: Überprüfen Sie die CPU-, Speicher- und Festplattenauslastung. Wenn die Kapazitätsgrenze überschritten ist, können Sie es versuchen um die Serverkonfiguration zu optimieren oder die Serverressourcen zu erhöhen: Sie können nur warten, bis der Server wieder normal ist. 4. Überprüfen Sie die Netzwerkverbindung. Überprüfen Sie, ob das Netzwerk stabil ist Geräte-, Firewall- oder Proxy-Einstellungen sind korrekt; 5. Stellen Sie sicher, dass die Cache- oder CDN-Konfiguration korrekt ist. 6. Wenden Sie sich an den Serveradministrator usw.

See all articles