Post oder GET Methode?
aufgabe : Ich soll sagen ob der Aufruf ein POST, GET oder DELETE oder Nichts von allem. Mit derAnnahme :Es werden bei jedem der Aufrufe Daten übergeben.
1.
beispiel-domain.de/home/
- ☐ POST ☐ GET ☐ DELETE ☐ Nichts von allem
2.
https://www.beispiel-domain.de/home.html?iid=211002&unr=011
- ☐ POST ☐ GET ☐ DELETE ☐ Nichts von allem
3.
https://www.beispiel-domain.de/home/nr=211002&unr=011
- ☐ POST ☐ GET ☐ DELETE ☐ Nichts von allem
4.
https://www.beispiel-domain.de/home/post/index.html?winr=330221
- ☐ POST ☐ GET ☐ DELETE ☐ Nichts von allem
Jede KI gibt eine ander antwort ich bin vorallem bei 1 und 3 unsicher . Ich hätte gesagt GET ,GET ,Nichts von allem , GET
Du hast keine näheren Informationen, zB eine Schnittstellenbeschreibung?
nein leider das war so die aufgabe
7 Antworten
Ohne weitere Informationen lässt sich das nicht beantworten. Bei 1 und 2 spricht viel für einen GET-Request. Beim Rest kann man nur raten. Für POST oder DELETE spricht für mich aber eigentlich gar nichts.
Grundsätzlich kann die Methode nur am Request Header zweifelsfrei bestimmt werden (oder natürlich einer Dokumentation/Client-Code/der API-Implementation). Wenn lediglich URLs gegeben sind, kann man höchstens versuchen, ein naheliegendes Urteil zu fällen. Bei einer erkennbaren Konvention / aussagekräftigen URLs kann das sogar klappen, doch das ist in deinem Fall meiner Meinung nicht so wirklich gegeben.
Ich würde es bei der Beantwortung der Aufgaben erst einmal nicht bei einem Haken belassen, sondern in jedem Fall einen kurzen Satz als Begründung dazuschreiben, um für den Fall einen Diskussionsraum zu öffnen. Auch wenn das dem Aufgabensteller vielleicht nicht gefallen mag, kann er dich im Nachgang nicht allzu einfach abwiegeln und muss sich gegebenenfalls nochmal selbst mit seiner Aufgabenstellung auseinandersetzen.
Anschließend kann man sich wohl nur daran orientieren, ob eine der URLs einen Querystring hat oder nicht und das als logische Grundlage nehmen, um GET-Requests herauszufiltern. Das wären die Antwort 2 und 4.
Nummer 1 ist nicht eindeutig zuordbar, daher sind es entweder POST/GET/DELETE (bei multiple-choice) oder nichts von alledem. Das Gleiche gilt für Nummer 3. Hierbei sollte beachtet werden, dass nr=211002&unr=011 ein Ordnername ist, kein Querystring. Dazu fehlt ein führendes Fragezeichen.
Ist in allen 4 Fällen nicht klar. Aufgabe nicht lösbar.
dann sag dem lehrer er soll die Thematik nochmal richtig verstehen.
Es ist eine URL. Einen POST request könnte man daran nicht erkennen und er hat das ganze Prinzip nicht verstanden.
und jede wette bei
https://www.beispiel-domain.de/home/nr=211002&unr=011
würde er sagen da fehlt das Fragezeichen als trenner. Falls ja hat er auch keine Ahnung was modrewrite ist (mal abgesehen davon dass es etwas seltsam wäre die URL, aber machbar).
ja das mein Lehrer keine ahnung zu haben scheint ,weiß ich. Was würdet ihr denn dann für antworten geben basierend auf dem bsp von @geheim007b
Denn ich nehme an genau so denkt er
also technisch korrekt wäre bei allem alles. verweise ihn auf https://wiki.selfhtml.org/wiki/HTTP/Anfragemethoden#POST
Beim POST Request werden die Daten "unsichtbar" im header mitgeschickt. Der GET Request ist auch von der länge limitiert, binarys wären da undenkbar. GET Parameter stehen in der URL.
Nehmen wir das offensichtlichste Beispiel
https://www.beispiel-domain.de/home.html?iid=211002&unr=011
hier wären iid und unr GET parameter. Gleichzeitig könnte aber auch noch x=>Hallo und y=>Test geschickt werden. An der URL würde man es nciht sehen.
https://www.beispiel-domain.de/home/nr=211002&unr=011
sieht erstmal syntaktisch falsch aus, ABER via modrewrite könnten nr, unr, ja sogar das Verzeichnis home trotzdem als GET Parameter übertragen werden
Mir ist klar dass er Grundlagen beibringen möchte, allerdings war die Frage ja was die korrekte Antwort ist... und (zumindest unter nutzung von Modrewrite) kann man POST Requests nicht Anhand der URL erkennen.
Beispiel zum Demostrieren:
<html>
<body>
<form method="post" action="ziel.php?x=gettest">
<input type="hidden" name="y" value="posttest">
<input type="submit" value="Abschicken">
</form>
und die zie.php
<?php
echo $_GET['x']." ";
echo $_POST['y'];
?>
Ausgabe gettest posttest (also beides), obwohl die sichtbare URL nur ziel.php?x=gettest ist.
Dann schreibe einfach dabei:
Die Methode des Request hängt vom Header ab. Da dieser nicht angegeben ist, gehe ich im Folgenden davon aus, dass in allen 4 Fällen GET verwendet wird.
Und dann kreuzt du überall GET an.
Oder alternativ: Du kreuzt "Nichts von allem" an, und argumentierst, dass ohne Header überhaupt nichts requested wird.
Oder: du liest nochmal ganz genau, ob da nicht doch irgendwo Informationen stehen, die du hier nicht erwähnt hast. Vielleicht steht auch eine Seite vorher irgendwas Relevantes zu der Aufgabe. Habe ich alles schon erlebt.
das stand als halt drin in der aufgabe : Mit derAnnahme :Es werden bei jedem der Aufrufe Daten übergeben.
Eine URI beinhaltet keine Information mit welcher Methode sie benutzt wird - Von daher ist die Frage nicht zu beantworten.
Vielleicht hilft dir ein Blick auf ähnliche API-Beispiele oder Diskussionen auf GitHub, da findest du oft typische Fälle und wie sie umgesetzt sind.
nun ja es wird aber dennoch erwartet das ich das so löse ohne mehr angaben