Bütün HTTP metodları idempotentdirmi?
sobes.tech Süni İntellekt
AI-dan cavab
Xeyr, bütün HTTP metodları idempotent deyil.
Idempotentlik, eyni parametrlərlə eyni sorğunu bir neçə dəfə həyata keçirdikdə, server tərəfində nəticənin ilk uğurlu icraatdan sonra dəyişməyəcəyini ifadə edir.
Əsas HTTP metodları və onların idempotentliyi:
| Metod | Idempotentdir? | Məqsəd |
|---|---|---|
GET |
Bəli | Məlumatları almaq |
HEAD |
Bəli | Cavab başlıqlarını almaq |
PUT |
Bəli | Resursu yaratmaq və ya tamamilə dəyişdirmək |
DELETE |
Bəli | Resursu silmək |
POST |
Xeyr | Məlumat göndərmək, resurs yaratmaq və ya əməliyyat etmək |
PATCH |
Xeyr | Resursun qismən yenilənməsi |
POST və PATCH idempotent deyil, çünki hər icra yeni resursun yaradılmasına və ya resursun vəziyyətinin dəyişməsinə səbəb ola bilər, bu da ilk uğurlu icraatdan sonra unikal deyil. Məsələn, istifadəçi yaratmaq üçün POST sorğusunu çox dəfə göndərmək adətən bir neçə istifadəçi yaradır.
Misal üçün, idempotent olmayan POST:
{
"username": "testuser"
}
Bu POST sorğusunu göndərmək hər çağırışda yeni istifadəçi yarada bilər.
İdempotent PUT nümunəsi:
{
"id": 123,
"status": "completed"
}
Bu PUT sorğusunu ID-si 123 olan resursa göndərmək onun statusunu "completed"-ə təyin edəcək. Təkrarlama statusu dəyişməyəcək, əgər artıq "completed"-dirsə.