Minden HTTP-módszer idempotens?
sobes.tech MI
Válasz az MI-től
Nem, nem minden HTTP módszer idempotens.
Az idempotencia azt jelenti, hogy ugyanazt a kérést többször végrehajtva a szerver oldalon az eredmény nem változik az első sikeres végrehajtás után.
A fő HTTP módszerek és azok idempotentsége:
| Módszer | Idempotens? | Cél |
|---|---|---|
GET |
Igen | Adatok lekérése |
HEAD |
Igen | Válaszcímkék lekérése |
PUT |
Igen | Erőforrás létrehozása vagy teljes cseréje |
DELETE |
Igen | Erőforrás törlése |
POST |
Nem | Adatok küldése erőforrás létrehozására vagy művelet végrehajtására |
PATCH |
Nem | Erőforrás részleges frissítése |
A POST és PATCH nem idempotensek, mert minden végrehajtásuk új erőforrás létrehozásához vagy az erőforrás állapotának módosításához vezethet, ami nem egyedi az első sikeres végrehajtás után. Például, egy felhasználó létrehozására irányuló POST kérés többszöri végrehajtása általában több felhasználót eredményez.
Nem idempotens POST példa:
{
"username": "testuser"
}
Ennek a POST kérésnek a küldése minden hívásnál új felhasználót hozhat létre.
Idempotens PUT példa:
{
"id": 123,
"status": "completed"
}
Ezt a PUT kérését az ID 123-as erőforrásra küldve annak állapotát "completed"-re állítja. Az ismételt küldés nem változtatja meg az állapotot, ha az már "completed".