So verstehen Sie den Inhaltstyp in 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=12345Nach 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>
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
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 = {'file': open('index.py', 'rb')} res = requests.post(url="http://localhost/upload", method="POST", data=data, files=files) print res
通过工具,可以看到我发送的数据内容如下:
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"
这里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>
php中$_POST
只能读取application/x-www-form-urlencoded
数据,$_FILES
只能读取multipart/form-data
类型数据,
那么,要读取text/xml
格式的数据,可以用:
$file = fopen('php://input', 'rb'); $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 >
-----------------------------------------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
, 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!

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

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

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





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 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# 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-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

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 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.

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

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.
