এইচটিটিপি দুটি বৈশিষ্ট্যের মধ্যে পার্থক্য করে:
আইডেম্পোটেন্সিটি নির্দিষ্টভাবে সংজ্ঞা দ্বারা সংজ্ঞায়িত করা হয়:
পদ্ধতিগুলিতে " আইডেম্পোটেন্স " এর সম্পত্তিও থাকতে পারে (ত্রুটি বা মেয়াদোত্তীর্ণ সমস্যাগুলি বাদ দিয়ে) এন> 0 অভিন্ন অনুরোধগুলির পার্শ্ব প্রতিক্রিয়াগুলি একক অনুরোধের মতোই। পদ্ধতি GET, HEAD, PUTএবং DELETEএই সম্পত্তি ভাগ করে নিন। এছাড়াও, পদ্ধতিগুলি OPTIONSএবং এর পার্শ্ব প্রতিক্রিয়াগুলি অবশ্যই ব্যবহার করা TRACE উচিত নয় এবং তাই সহজাতভাবে আদর্শবান ot
এবং সুরক্ষা:
বিশেষত, কনভেনশনটি প্রতিষ্ঠিত হয়েছে যে পদ্ধতিগুলি GETএবং HEADপদ্ধতিগুলির পুনরুদ্ধার ব্যতীত অন্য কোনও পদক্ষেপ গ্রহণের তাত্পর্য থাকা উচিত নয় । এই পদ্ধতিগুলিকে " নিরাপদ " হিসাবে বিবেচনা করা উচিত । এটি ব্যবহারকারীর এজেন্টগুলি অন্যান্য পদ্ধতিগুলির যেমন POST, PUTএবং DELETE, একটি বিশেষ উপায়ে প্রতিনিধিত্ব করতে অনুমতি দেয় যাতে ব্যবহারকারী সম্ভবত কোনও অনিরাপদ পদক্ষেপের জন্য অনুরোধ করা হচ্ছে এই বিষয়টি সম্পর্কে সচেতন হন।
স্বাভাবিকভাবেই, কোনও GETঅনুরোধ সম্পাদনের ফলে সার্ভারটি পার্শ্ব-প্রতিক্রিয়া সৃষ্টি করে না তা নিশ্চিত করা সম্ভব নয় ; আসলে, কিছু গতিশীল সংস্থানগুলি একটি বৈশিষ্ট্য হিসাবে বিবেচনা করে। এখানে গুরুত্বপূর্ণ পার্থক্যটি হল যে ব্যবহারকারী পার্শ্ব-প্রতিক্রিয়াগুলির জন্য অনুরোধ করেননি, সুতরাং তাদের জন্য দায়বদ্ধ হতে পারে না।
নোট করুন যে সুরক্ষা আদর্শকে বোঝায়: যদি কোনও পদ্ধতির কোনও পার্শ্ব-প্রতিক্রিয়া না থাকে তবে একাধিকবার এটি সম্পাদন করলে একবারে সম্পাদন করার মতো একই পার্শ্ব-প্রতিক্রিয়া পাওয়া যাবে, অর্থাত্ কোনওটি নয়।
এটি পদ্ধতিগুলিকে তিনটি বিভাগে রাখে:
- নিরাপদ (এবং এইভাবে এছাড়াও idempotent):
GET, HEAD, OPTION,TRACE
- idempotent কিন্তু অগত্যা নিরাপদ নয়:
PUT,DELETE
- আদর্শবান বা নিরাপদ নয়:
POST
PUT এর কোনও দিকই প্রভাবিত হওয়া দরকার।
এটা ভুল। PUTআদর্শবান তবে নিরাপদ নয়। পুরো পয়েন্ট এর PUTএকটি পার্শ্ব-প্রভাব, যথা একটি সম্পদ আপডেট করা হয়। আইডেম্পোটেন্সি বলতে যা বোঝায় তা হ'ল একাধিকবার একই সামগ্রীতে একই সংস্থানটি আপডেট করার ক্ষেত্রে এটি একবারে আপডেট করার মতো একই প্রভাব ফেলতে হবে।
সুরক্ষা [জোর খনি] সম্পর্কে বিভাগের শেষ অনুচ্ছেদটি নোট করুন:
স্বাভাবিকভাবেই, কোনও GETঅনুরোধ সম্পাদনের ফলে সার্ভারটি পার্শ্ব-প্রতিক্রিয়া সৃষ্টি করে না তা নিশ্চিত করা সম্ভব নয় ; আসলে, কিছু গতিশীল সংস্থানগুলি একটি বৈশিষ্ট্য হিসাবে বিবেচনা করে। এখানে গুরুত্বপূর্ণ পার্থক্যটি হল যে ব্যবহারকারী পার্শ্ব-প্রতিক্রিয়াগুলির জন্য অনুরোধ করেননি, সুতরাং তাদের জন্য দায়বদ্ধ হতে পারে না ।
যদিও এই বাক্যটি GETসুরক্ষা এবং সুরক্ষার কথা বলে, আমরা ধরে নিতে পারি যে লেখকরা একই যুক্তি PUTএবং আদর্শের প্রতি প্রয়োগ করতে চেয়েছিলেন । IOW: নামমাত্র উত্স আপডেট করে PUTশুধুমাত্র একটি ব্যবহারকারীর দ্বারা দৃশ্যমান পার্শ্ব-প্রতিক্রিয়া থাকা উচিত । এটির অন্যান্য পার্শ্ব-প্রতিক্রিয়াও থাকতে পারে তবে ব্যবহারকারী তাদের জন্য দায়বদ্ধ হতে পারে না।
উদাহরণস্বরূপ, PUTআদর্শবাদী হ'ল এর অর্থ হ'ল আমি যতবার চাই এটিকে আবার চেষ্টা করতে পারি: অনুমানের নিশ্চয়তা দেয় যে এটি একাধিকবার কার্যকর করা একবারে এটি কার্যকর করার মতোই হবে same এই বহুবিধ PUTঅনুরোধগুলির পার্শ্ব-প্রতিক্রিয়া হিসাবে পুরানো সংশোধনগুলির একটি ব্যাকলগ তৈরি করা পুরোপুরি বৈধ । তবে, যদি একাধিক পুনরায় চেষ্টা করার ফলস্বরূপ, আপনার ডাটাবেসটি পুরানো সংশোধনীগুলির একটি ব্যাকলগ পূরণ করে, তবে এটি আমার সমস্যা নয়, এটি আপনার।
আইওউ: আপনার যতটা পার্শ্ব-প্রতিক্রিয়া রয়েছে আপনি চান তা অনুমোদিত, তবে but
- এটি অবশ্যই ব্যবহারকারীর দিকে তাকাতে হবে যেন তাদের অনুরোধগুলি আদর্শবান ছিল
- আপনি এই পার্শ্ব-প্রতিক্রিয়াগুলির জন্য দায়ী, ব্যবহারকারী নয়