Ich denke über das Erstellen einer REST-API für einen vorhandenen reinen HTTP-basierten Webdienst nach.RESTful-Webdienst, POST für Datenabruf
Bis jetzt können Clients HTTP POST-Anforderungen zum Abrufen von Daten an den Dienst senden. Die HTTP-Körper dieser Anforderungen enthalten so etwas wie Abfrageparameter. Es ist ein XML-Dialekt. Diese Abfragen können oft eine Größe von mehr als 30 kB haben.
Auch für Abfragen ist eine Verschlüsselung erforderlich. Daher können die Abfrageparameter von HTTP GET nicht als Abfragezeichenfolge übertragen werden.
Meine Frage ist: verletzt es das REST-Prinzip "POST ändert Server-Status", wenn ich HTTP POST zum Abrufen von Daten verwenden?
Nach jeder Abrufaktion (erfolgreich oder nicht) wird der Protokolltabelle in einer Datenbank ein Protokolleintrag hinzugefügt.
aktualisieren
So können die Abfrageparameter nicht von HTTP GET als Query-String
Wie ich aus den Kommentaren gelernt haben, übertragen werden und die Antwort, die Abfragezeichenfolge ist verschlüsselt. Es wird jedoch nicht empfohlen, sicherheitsrelevante Daten innerhalb der Abfragezeichenfolge zu übertragen.
Ja, POST dient zum Erstellen von Daten. Wenn Sie SSL verwenden, müssen Sie sich auch keine Sorgen über die Verschlüsselung von Parametern machen. – sed
@Stan - Sicher, HTTPS verwendet Verschlüsselung. Aber die URL - einschließlich der Abfragezeichenfolge - wird niemals verschlüsselt. Dies ist einer der beiden Gründe, warum die Clients die Anfrage an den HTTP-Body senden müssen. – JimHawkins
Nein, es ist ebenfalls verschlüsselt.Es ist keine gute Idee, sensible Informationen über Querystring zu übergeben, ** aber es ist sicher gegen Traffic-Sniffing **. – sed