Post oder GET Methode?

Noeru  02.07.2025, 19:00

Du hast keine näheren Informationen, zB eine Schnittstellenbeschreibung?

starplatinum234 
Beitragsersteller
 02.07.2025, 19:01

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.

Woher ich das weiß:Berufserfahrung – Entwickle Webseiten seit über 25 Jahren.

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.

Woher ich das weiß:Studium / Ausbildung – Informatik

starplatinum234 
Beitragsersteller
 02.07.2025, 19:18

nun ja es wird aber dennoch erwartet das ich das so löse ohne mehr angaben

geheim007b  02.07.2025, 20:47
@starplatinum234

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.

starplatinum234 
Beitragsersteller
 02.07.2025, 21:52
@geheim007b

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

geheim007b  02.07.2025, 22:01
@starplatinum234

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.

geheim007b  02.07.2025, 22:04
@geheim007b

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.

Waldelb3  03.07.2025, 00:09
@starplatinum234

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.

Waldelb3  03.07.2025, 00:12
@starplatinum234

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.

starplatinum234 
Beitragsersteller
 03.07.2025, 10:26
@Waldelb3

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.