এইচটিটিপি দুটি বৈশিষ্ট্যের মধ্যে পার্থক্য করে:
আইডেম্পোটেন্সিটি নির্দিষ্টভাবে সংজ্ঞা দ্বারা সংজ্ঞায়িত করা হয়:
পদ্ধতিগুলিতে " আইডেম্পোটেন্স " এর সম্পত্তিও থাকতে পারে (ত্রুটি বা মেয়াদোত্তীর্ণ সমস্যাগুলি বাদ দিয়ে) এন> 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
- এটি অবশ্যই ব্যবহারকারীর দিকে তাকাতে হবে যেন তাদের অনুরোধগুলি আদর্শবান ছিল
- আপনি এই পার্শ্ব-প্রতিক্রিয়াগুলির জন্য দায়ী, ব্যবহারকারী নয়