2009-02-26 6 views
1

Ich bin letztens auf einen Code gestoßen, der die im URI angegebenen Abfrageparameter verwendete, während er gleichzeitig ein HTTP-POST war.POST zu einem URI mit GET-Abfrageparams?

Ich habe mich nur gefragt, ist die Interpretation dieser Felder herstellerspezifisch? Geben die RFCs etwas Spezifisches dazu? Und wenn in beiden ein Parameter existiert, welcher gewinnt?

besser zu veranschaulichen, sah die Abfrage so etwas wie dieses:

POST/posts/user = bob HTTP/1.1

user = bill & title = Test & content = Testing + Content

Dank

Antwort

2

Das ist perfekt legal. Viele Frameworks unterstützen dies, zum Beispiel gibt die Servlet-API sogar die Priorität (Reihenfolge) der Argumente an, wie sie in getParameters (String) erscheinen, die zuerst den Abfrageparameter bereitstellen. Zum Beispiel ist dies auch legal, nicht die Parameternamen sind gleich.

POST /path?param1=value HTTP/1.1 
Host: localhost 

param1=value&param2=value 

Dies gilt auch nach dem HTTP/1.1 RFC, einen Blick auf RFC 2616.

Es sollte nicht herstellerspezifisch sein, und die umfassendsten Frameworks werden es unterstützen.

1

Es gibt kein Trumpfen. Die Werte GET und POST werden als separate Sammlungen übergeben.

0

Ich mache das gelegentlich. Normalerweise lege ich die tatsächlichen Update-Felder in die Post-Daten, mit Abfrage Daten verwendet, um die Antwort

zu formatieren