Sobes.tech
Middle

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

POSTPATCH 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ə.