Sobes.tech
Middle

Barcha HTTP usullari idempotentmi?

sobes.tech AI

AIdan javob

Ha, barcha HTTP usullari idempotent emas.

Idempotentlik shuni anglatadiki, agar siz bir xil so'rovni bir nechta marta bajaradigan bo'lsangiz, server tomonida natija birinchi muvaffaqiyatli bajarilishdan keyin o'zgarmaydi.

Asosiy HTTP usullari va ularning idempotentligi:

Usul Idempotentmi? Ma'nosi
GET Ha Ma'lumotlarni olish
HEAD Ha Javob sarlavhalarini olish
PUT Ha Resursni yaratish yoki to'liq o'zgartirish
DELETE Ha Resursni o'chirish
POST Yo'q Ma'lumotlarni yuborish, resurs yaratish yoki amal bajarish
PATCH Yo'q Resursning qisman yangilanishi

POST va PATCH idempotent emas, chunki har bir bajarilish yangi resurs yaratishga yoki resurs holatini o'zgartirishga olib kelishi mumkin, bu birinchi muvaffaqiyatli bajarilishdan keyin yagona emas. Masalan, foydalanuvchini yaratish uchun POST so'rovini bir necha marta yuborish odatda bir nechta foydalanuvchini yaratadi.

Idempotent bo'lmagan POST misoli:

{
  "username": "testuser"
}

Bunday POST so'rovni yuborish har safar yangi foydalanuvchini username: "testuser" bilan yaratishi mumkin.

Idempotent PUT misoli:

{
  "id": 123,
  "status": "completed"
}

Bunday PUT so'rovni ID 123 bo'lgan resursga yuborish uning holatini "completed" ga o'rnatadi. Takroriy yuborish holatni o'zgartirmaydi, agar u allaqachon "completed" bo'lsa.