একটি আরএসটি ওয়েব পরিষেবাদিতে ক্রিয়াকলাপ করতে আমার কোন HTTP ক্রিয়া ব্যবহার করা উচিত?


80

আমি একটি রেস্টস্টুল ওয়েব পরিষেবা বাস্তবায়ন করছি এবং উপলব্ধ ক্রিয়াকলাপগুলির মধ্যে একটি হবে reload। এটি কনফিগারেশন, ক্যাশে ইত্যাদি পুনরায় লোড করতে ব্যবহৃত হবে

আমরা এর GETমতো একটি ইউআরআই-তে সরল দিয়ে শুরু করেছি : ${path}/cache/reload(কোনও প্যারামিটার পাস হয় না, কেবল ইউআরআই বলা হয়)। আমি সচেতন যে কোনও জিইটি অনুরোধের মাধ্যমে ডেটা পরিবর্তন করা উচিত নয়।

একটি RESTful ওয়েব পরিষেবাদিতে কোন ক্রিয়া / কমান্ড আহ্বান করতে সঠিক ক্রিয়াটি কোনটি ব্যবহার করা হয়?

পুনরায় লোড হল REST ওয়েব পরিষেবার একটি কমান্ড যা নিজস্ব ক্যাশে / কনফিগারেশন / ইত্যাদি পুনরায় লোড করে। এটি ক্লায়েন্টকে তথ্য ফেরত দেওয়ার কোনও পদ্ধতি নয়।

সম্ভবত আমি যা করার চেষ্টা করছি সেটি বিশ্রাম নয়, তবে এটি এখনও এমন কিছু যা এইভাবে করা দরকার। reloadপদ্ধতিটি কেবল একটি বাস্তব উদাহরণ প্রয়োগের সুযোগ অনুভূতি এবং সবচেয়ে বেশি নিবদ্ধ উত্তর তোলে ছিল, কিন্তু আসলে, আমি শুধু জানতে যা ক্রিয়া, এমন একটি ক্রিয়া টি ককটেলের করে না আরম্ভ করা প্রয়োজন কিন্তু এখনও ডেটা পরিবর্তন / অবস্থা.

আমি স্ট্যাক ওভারফ্লো বিষয়টিতে এই বিস্তৃত অ্যাওয়ার্ডটি পেয়েছি: https://stackoverflow.com/questions/16877968/


1
"রিলোডিং" কোনও অ্যাপ্লিকেশনটি যে তথ্যটি প্রদর্শিত হতে চলেছে তা রিফ্রেশ করে? পুনরায় লোড করা এবং কেবল আবার ডেটা পাওয়ার মধ্যে কি কোনও পার্থক্য রয়েছে?
শান রেডমন্ড

1
@ সানরেডমন্ড না, তথ্য ক্লায়েন্টকে প্রেরণ করা হয় না। প্রকৃতপক্ষে, ক্লায়েন্টটি কি আরএসটি ওয়েব পরিষেবাটি কার্যকর করতে এবং অভ্যন্তরীণ কমান্ড (পুনরায় লোড) করতে বলছে saying এর মতো কিছু: "ডাটাবেসে প্রচুর কনফিগারেশন পরিবর্তন করা হয়েছিল, তাই আরআরইএসটি ওয়েব পরিষেবা, এখনই এটিকে আপনার স্মৃতিতে পুনরায় লোড করুন"।
রেনাতো দিনহানি

ক্রস সাইট ডুপ্লিকেট: stackoverflow.com/q/15340946/319403
Chao

আপনি কি উপযুক্ত অনুরোধগুলিতে শিরোনামের পরামিতিটি ব্যবহারের বিষয়টি বিবেচনা করেছেন? এটিকে ক্যাশে রিফ্রেশ করার মতো মনে হচ্ছে ...
গুরান

উত্তর:


25

আমি মনে করি না এই ক্রিয়াটির জন্য একটি যথাযথ ক্রিয়া আছে কারণ এই লেনদেনটি আসলে "বিশ্রামের" নয়। "রাষ্ট্র" স্থানান্তর "এর পক্ষে" এস "এবং" টি "অবস্থান এবং এখানে কিছুই স্থানান্তরিত হচ্ছে না being বা অন্য কোনও উপায়ে বলা যাক, কঠোর সংজ্ঞা অনুসারে PUT এবং POST এর মতো ক্রিয়াগুলি সর্বদা বিশেষ্য হিসাবে ব্যবহৃত হয় এবং "পুনরায় লোড" এর ক্রিয়াটি থাকে has

এই পুনরায় লোডটি বিশ্রামের মতো নাও হতে পারে তবে এটি এখনও কার্যকর হতে পারে এবং আপনার এটি করার একটি উপায় বেছে নেওয়া এবং এটির সাথে বেঁচে থাকার বা ব্যাখ্যা করা উচিত যে এটি অস্বাভাবিক। জিইটি সম্ভবত সবচেয়ে সহজ। মন্তব্যগুলিতে সন্দেহের যথেষ্ট পরিমাণ রয়েছে, তবে এই পুনরায় লোড ক্রিয়াটি প্রয়োজনীয় কিনা তা নিয়ে আপনার ভাবা উচিত কারণ অন্য কিছু এটি করা উচিত যা করছে তা পুরোপুরি করছে না।


আমি সম্মত হই যে এটি বিশ্রামের নয় তবে এটি কার্যকর হতে পারে। আমি মনে করি আপনার অবশ্যই একটি পুটকে পরামর্শ দেওয়া উচিত, কারণ এটি সম্ভবত আদর্শবান তবে নালিম্পোটেন্ট নয়।
অ্যারন গ্রিনওয়াল্ড

অ্যারন, আদর্শবান এবং নালিম্পোটেন্টের তুলনা সব ভাল এবং ভাল, তবে আপনি কীভাবে এটি নির্ধারণ করবেন যখন এটি গুরুত্বপূর্ণ নয়?
ক্রেগ

@ ক্রেইগ এটি আদর্শবান যদি এটি চালানো হয় তবে এটি একবার চালানোর ক্ষেত্রে একই প্রভাব থাকে। এটি একবারে বা বহুবার চালানো যদি সার্ভারে শূন্য বার চালানোর মতো একই প্রভাব ফেলে তবে এটি নালিকাশক্তিযুক্ত। en.wikedia.org/wiki/Idempotence
অ্যারন গ্রিনওয়াল্ড

5
@AaronGreenwald "notimpotent" [না সুবিধার্থে im-poht-NT] [না সুবিধার্থে im-pawr-TNT] - বিশেষণ - "। গুরুত্বপূর্ণ" 1. শব্দ, একটি প্লে 'গুরুত্বপূর্ণ নয়, "বিশেষণ এর বিপরীত শব্দ 2. হাস্যরস ... ;-)
ক্রেগ

@ ক্রেইগ আমি পুরোপুরি এটি মিস করেছি :)
অ্যারন গ্রিনওয়াল্ড

75

আপনি যদি বিশ্রাম পেতে চান তবে কোন ক্রিয়াটি সম্পাদন করার ক্রিয়াটি ভাবেন না , ক্লায়েন্ট কিছু করার পরে আপনি যে রাষ্ট্রটি চান সেটি সংস্থান করতে চান think

সুতরাং উপরে আপনার উদাহরণগুলির একটি ব্যবহার করে আপনার একটি ইমেল সারি রয়েছে যা ইমেলগুলি প্রেরণ করে। আপনি চান যে ক্লায়েন্টটি এই ইমেল সারিটি থামানো বা থামানো বা কোনও কিছুর স্থিতিতে ফেলে।

সুতরাং ক্লায়েন্ট সেই সংস্থানটির জন্য সার্ভারে একটি নতুন রাষ্ট্র রাখে। এটি এই জেএসএনের মতো সহজ হতে পারে

PUT http://myserver.com/services/email_service HTTP/1.1
Content-Type: text/json

{"status":"paused"}

সার্ভারটি কীভাবে বর্তমান স্থিতি থেকে ("চলমান" বলুন) "বিরামিত" অবস্থা / স্থিতিতে পাবেন তা চিত্রিত করে।

ক্লায়েন্ট যদি উত্সটিতে একটি জিইটি করে তবে এটি বর্তমানে থাকা অবস্থায় ফিরে আসতে হবে (বলুন "বিরামিত")।

এটি এইভাবে করার কারণ এবং কেন বিশ্রাম এত শক্তিশালী হতে পারে, আপনি সেই অবস্থাটি সার্ভারে উঠতে HOW ছেড়ে যান।

ক্লায়েন্ট কেবল বলেছেন "এটি এখন আপনার উচিত সেই রাজ্য" এবং সার্ভারটি কীভাবে এটি অর্জন করতে পারে তা নির্ধারণ করে। এটি একটি ডাটাবেসে একটি সাধারণ ফ্লিপ হতে পারে। এটি হাজার হাজার ক্রিয়া প্রয়োজন হতে পারে। ক্লায়েন্ট যত্ন করে না, এবং এটি জানতে হবে না।

সুতরাং আপনি কীভাবে সার্ভারটি এটি করে এবং ক্লায়েন্টের যত্ন নেই সেটিকে আপনি পুরোপুরি পুনর্লিখন / পুনরায় ডিজাইন করতে পারেন। ক্লায়েন্টকে কেবল কোনও সংস্থার বিভিন্ন রাষ্ট্রের (এবং তাদের উপস্থাপনা) সম্পর্কে সচেতন হওয়া দরকার, কোনও ইন্টার্নাল নয়।


2
যতদূর আমি উদ্বিগ্ন এটি সঠিক উত্তর। সার্ভারে ডেটা রিফ্রেশ করা কোনও আদর্শিক ক্রিয়াকলাপ নয় এবং GETএটি ব্যবহার করার জন্য একটি সম্পূর্ণ অনুপযুক্ত ক্রিয়া। PUTঅপারেশনটি হ'ল সবচেয়ে উপযুক্ত ক্রিয়া যা ক্যাশেটির "পুনরায় লোড করা স্থিতি" আপডেট করে "পুনরায় লোড করা" হিসাবে ভাবা যেতে পারে।
জেজ

@ জেজ এখানে উত্তরগুলির মধ্যে, আমি এটিরও পছন্দ করি। ই-মেইল রূপক সঙ্গে স্টিকিং, এটা চট করে দেয় "পাঠানোর" অবস্থায় সেটিকে পরিবর্তে নির্বাণ শুধু দ্বারা মেল পাঠানোর মনে প্রথমে বিজোড় মনে পাঠানোর এটা (একটি কর্ম)। তবে আপনি যদি এটির বিষয়ে চিন্তা করেন তবে এটি "আউটবক্সে" রাখার মতো একই জিনিস। প্রকৃতপক্ষে, মেল সিস্টেম নিজেই সম্ভবত অভ্যন্তরীণভাবে এটিকে কুইন করছে যখন আপনি এটি প্রেরণ করতে বলবেন। সুতরাং API আপনাকে মেলটি "প্রেরণ" অবস্থায় রাখতে দিতে পারে এবং API এর বাইরে নিজেকে ব্যাখ্যা করা বাধ্য নয় isn't
ক্রেগ

সুতরাং এক্সটেনশনের মাধ্যমে, আপনি যদি বার্তাটি এখনও যেতে না চান তবে আপনি এটি প্রকাশের তারিখ / সময় সহ "নির্ধারিত" অবস্থায় রেখে দিন। যদি এটি সম্পূর্ণ না হয় তবে আপনি এটিকে (বা এটি স্পষ্টভাবে / ডিফল্টরূপে) "খসড়া" স্থিতি ইত্যাদিতে রেখে দিয়েছেন
ক্রেগ

... যদিও আমি মনে করি আমি POST কে এই ক্ষেত্রে PUT এর চেয়ে বেশি প্রাধান্য দেব, যেহেতু পুটকেও আদর্শবান বলে মনে করা হয়, তবে POST তেমন কোনও বাধা নেই।
ক্রেগ

1
আপনি এটি করতে পারেন, তবে শেষ পর্যন্ত এটি একটি বৃত্তাকার খোসাটিকে একটি বৃত্তাকার গর্তের সাথে ফিট করার চেষ্টা করছে। কোনও কারণ নেই যে ক্লায়েন্টকে কোনও কিছু "পুনরায় লোড" করতে সার্ভারকে ট্রিগার করতে হবে, এটি কেবলমাত্র স্থাপত্য নকশা poor হয় সার্ভার প্রতিটি কল বা একটি নির্দিষ্ট সময়ের বিরতিতে তার অভ্যন্তরীণ অবস্থা আপডেট করতে পারে। রিসোর্স স্টেটের কোনও প্রকৃত অনুরোধের চেয়ে আলাদা কিছু পুনরায় লোড করতে সার্ভারকে বলতে ক্লায়েন্টের উপর নির্ভর করা আরামদায়ক আর্কিটেকচার নয়।
করম্যাক মুলহাল

32

গৃহীত উত্তর সহ অন্যান্য কয়েকটি উত্তর আপনাকে জিইটি (যদিও খুব উত্সাহী নয়) ব্যবহার করার পরামর্শ দেয়।

আমি একমত নই

সবার আগে, অন্যরা আপনাকে বলছে যে এটি আদর্শ নয় এবং সত্যই রেস্টস্টুল সঠিক নয়। একটি যথাযথ রেস্টলফুল দৃশ্যে আপনি সার্ভারে সংস্থানগুলি পরিচালনা করছেন এবং সেই সংস্থানগুলিকে যুক্ত, আপডেট, মুছে ফেলা, পুনরুদ্ধার করা ইত্যাদি। একটি পুটকে একটি পেওল প্রেরণ করা উচিত যা অনুরোধটি সম্পূর্ণ হওয়ার পরে সংস্থানটি কী হওয়া উচিত তা উপস্থাপন করে এবং POST কে এমন পে-লোড প্রেরণ করা উচিত যা সার্ভারে যুক্ত করার জন্য একটি সংস্থানকে প্রতিনিধিত্ব করে। এবং একটি জিইটি সার্ভারে একটি সংস্থান ফিরিয়ে আনা উচিত।

আপনার একটি আরপিসি (রিমোট পদ্ধতি কল) রয়েছে, যা বিশ্রামের নয় - আপনি সার্ভারে কিছু করতে চান। সুতরাং আপনি যদি বিশুদ্ধরূপে RESTful API তৈরি করার চেষ্টা করছেন তবে আপনি যা করছেন তা আপনার পুনর্বিবেচনা করা উচিত।

এটি বলেছিল, কখনও কখনও আপনার নিয়মগুলি কিছুটা বাঁকানো দরকার। বিশেষত যদি আপনি এমন একটি অভ্যন্তরীণ এপিআই বিকাশ করছেন যা জনসাধারণের সামনে প্রকাশিত হবে না, আপনি সিদ্ধান্ত নিতে পারেন যে বাণিজ্য বন্ধ রয়েছে।

যদি আপনি না, আমি একটি রাখুন অথবা পোষ্ট সুপারিশ করবে হোক বা না হোক আরপিসি উপর নির্ভর করে idempotent বা না।

সাধারণভাবে, আমরা বলি যে HTTP পুট এসকিউএল আপডেটের মানচিত্র এবং এইচটিপিএল পোস্ট এসকিউএল ইনসার্টে মানচিত্র করে, তবে এটি কঠোরভাবে সত্য নয়। একটি শুদ্ধ উপায় বলার উপায় যে এইচটিটিপি পুট আদর্শবান হওয়া উচিত এবং এইচটিটিপি পোস্ট হওয়া উচিত নয়। এর অর্থ হল যে কোনও পার্শ্ব প্রতিক্রিয়া ছাড়াই আপনি যতবার চান একই পুট অনুরোধটি কল করতে পারবেন। একবার আপনি একবার এটি কল করে নিলে আবার ফোন করা ক্ষতিগ্রস্থ নয়। তবে আপনার পোষ্ট অনুরোধগুলি বারবার কল করা উচিত নয় যতক্ষণ না আপনি বোঝাতে চান - প্রতিটি POST আবার সার্ভারে ডেটা পরিবর্তন করে।

আপনার ক্ষেত্রে, যদি আপনার এই পুনরায় লোড ফাংশনটি প্রয়োজন হয় তবে আমি একটি পুট সুপারিশ করব কারণ এটি মনে হচ্ছে এটি আদর্শবান। তবে আমি আপনাকে এখনও অনুরোধ করব যে এটির প্রয়োজন হয় না এমন বিষয়ে অন্যরা কী বলেছিল তা বিবেচনা করার জন্য।


6

POSTএবং PUTওয়েব সার্ভারে কোনও সত্তা জমা দিতে ব্যবহৃত HTTP ক্রিয়াগুলি। এর সাথে PUT, জমা দেওয়া সত্তা হ'ল প্রদত্ত ইউআরআই-তে সংস্থানটির (নতুন) প্রতিনিধিত্ব, যা আপনি যা চান তা ফিট করে না। POSTtheতিহ্যগত ফর্ম-হ্যান্ডলারের জন্য, যেখানে সত্তা সম্পদের জন্য সহায়ক ডেটা, যাতে এটি বিজয়ী। সত্তাটি আদেশ বা ক্রিয়াকে অন্তর্ভুক্ত করবে (উদাহরণস্বরূপ "ক্রিয়া = পুনঃলোড")।

এটি বলেছিল, সম্ভবত জিজ্ঞাসিত কমান্ডটি কোনও আরইএসটি ইন্টারফেসের মাধ্যমে প্রকাশ করা উচিত নয়। এটি "পুনরায় লোড" করার প্রয়োজনীয়তার মতো মনে হচ্ছে কারণ ডেটা পরিবর্তন করা যেতে পারে অন্য কোনও চ্যানেলের মাধ্যমে (যেমন ফাইল সিস্টেম, ডিবি ক্লায়েন্ট)। ক্যাশেগুলি স্বচ্ছ হতে হবে। তদুপরি, এইচটিটিপি অনুরোধগুলি পারমাণবিক হওয়া উচিত, এমনকি অন্যান্য চ্যানেলগুলিতে পাঠানো বার্তাগুলিকেও বিবেচনায় নেওয়া উচিত। কনফিগারেশন সেটিংসের জন্য "রিলোড" কমান্ড সরবরাহ করা একটি অপ্রয়োজনীয় জটিলতা বলে মনে হচ্ছে; এটি প্রয়োজন একটি ভঙ্গুর নকশা। অন্য চ্যানেলের মাধ্যমে আপডেটের পরে সাফ-আপ করতে "পুনরায় লোড করুন" প্রকাশ করা নোংরা কারণ একটি চ্যানেলে পুরো কথোপকথন থাকে না। পরিবর্তে, এর মধ্যে একটি বিবেচনা করুন:

  • REST এর মাধ্যমে সম্পূর্ণ আপডেট করা making
  • কমান্ড (গুলি) অন্য চ্যানেলে প্রকাশ করা
  • ক্রিয়াগুলি স্বয়ংক্রিয় করা

অন্যান্য বিধিনিষেধগুলি কী রয়েছে তার উপর নির্ভর করে options বিকল্পগুলির মধ্যে কিছু কার্যকর হতে পারে না।

" REST এ PUT বনাম পোষ্ট " দেখুন।


ধন্যবাদ. আমি সম্পাদনার "অভ্যন্তরীণ" সরিয়েছি কারণ বাস্তবে "পুনরায় লোড" পদ্ধতিটি জনসাধারণের উদ্দেশ্যে। আমি কেবল এটি বোঝাতে চেষ্টা করেছি এটি ওয়েব পরিষেবাদি নিজেই বোঝায়। আমি মনে করি "অ্যাকশন" পোস্ট করা ভাল পন্থা হবে।
রেনাতো দিনহানি

@ রেনাটো দিনহানি কনসেইনো: "অভ্যন্তরীণ" না থাকলেও এখনও এটি গন্ধ পাচ্ছে। নকশাটি ভাল কিনা সে সম্পর্কে একটি নতুন প্রশ্ন জিজ্ঞাসা করা আপনার পক্ষে প্রভাবিত হতে পারে।
outis

4

আমি যুক্তি দেব যে কোনও ক্লায়েন্টের অনুরোধকে কেন এমন কিছু সতেজ করার জন্য স্পষ্টভাবে কল করা দরকার। মনে হচ্ছে এটি GET এর আরও সাধারণ বাস্তবায়নের জন্য লজিক যুক্তিযুক্ত হওয়া উচিত (অর্থাত পুল টানুন, তবে পরিষেবাটি টানার আগে ডেটাটি রিফ্রেশ করে তোলে) বা ক্লায়েন্ট থেকে দূরে ব্যাকএন্ডে অন্য ট্রিগার দ্বারা।

সর্বোপরি, পরবর্তী কলগুলিতে কেবল ডেটা / কনফিগারেশনটি বর্তমান হওয়া দরকার, তাই আমি ডেটা রিফ্রেশের জন্য অলস বনাম আগ্রহী কলটির দিকে আরও ঝুঁকতে চাই। স্পষ্টতই আমি এখানে প্রচুর পরিমাণে ধরে নিচ্ছি, তবে আমি এই ধরণের স্পষ্ট এবং একক কলটির প্রয়োজনীয়তা পুনর্বিবেচনা করতে একটি পদক্ষেপ ফিরে নেব।


আমার সম্পাদনা দেখুন। "রিলোড" কোনও আদেশ নয় যা তথ্য ফেরত দেয়। এটি নিজেই আরআরইএসটি ওয়েব পরিষেবাকে বোঝায়। সাধারণ শব্দগুলিতে, আমার প্রশ্নটি একটি আরএসটি ওয়েব পরিষেবাদিতে ক্রিয়াকলাপ সম্পর্কে বোঝায়। অন্যান্য উদাহরণ হতে পারে: email_queue/stop_sending_emails। আমি কেবলমাত্র একটি রেস্টস্টুল ইন্টারফেস ব্যবহার করে কোনও কিছুকে একটি কমান্ড দিচ্ছি।
রেনাতো দিনহানি

5
আমি এখনও একমত। স্থানীয় প্রক্রিয়াতে সাইনগআপ চালনা করা অর্থপূর্ণ হয়, যেহেতু কম্পিউটারে স্থানীয়ভাবে লগ ইন করা এমন কাউকে বিশ্বাস করা উচিত যার কাছে এই সিগন্যালে অ্যাক্সেস রয়েছে। কিন্তু একটি রাষ্ট্রবিহীন, ইন্টারনেট অ্যাক্সেসযোগ্য প্রোটোকলের জন্য? পোলিং বা ফাইল পর্যবেক্ষণের মাধ্যমে ওয়েব পরিষেবাটি স্বয়ংক্রিয়ভাবে স্বয়ংক্রিয়ভাবে পুনরায় লোড করা উচিত। এই কলটি সম্পূর্ণ অপ্রয়োজনীয় হওয়া উচিত

1
আমি রাজী. কনফিগারেশন এবং ক্যাশে করার মতো জিনিসগুলি ক্লায়েন্টের কাছে স্বচ্ছ হতে বোঝায়। হতে পারে আপনার আমাদের এমন অবস্থার আরও দৃ Maybe় বিবরণ দেওয়া উচিত যেখানে আপনার শেষ পয়েন্টটি কল করা হবে।
বেনিয়ামিন হডসন 21

3

ক্রিয়াকলাপটিকে কেন কোনও সংস্থান হিসাবে ব্যবহার করবেন না। আপনি যেহেতু ক্যাশে আপডেট করতে চান তাই আপনি আপনার সিস্টেমে একটি নতুন ক্রিয়াকলাপ পোস্ট করবেন।

পিউরিস্টদের জন্য, আপনার এটির জন্য একটি উত্সর্গীকৃত url থাকতে পারে। নোট করুন যে আপনি এটি প্রসারিত করতে এবং তারিখ, স্থিতি, ব্যবহারকারীর, ইত্যাদির সাথে একটি ডাটাবেসে (বা যে কোনও স্টোরেজ) প্রকৃত ক্রিয়াগুলি লগ করতে পারেন ... কেবল আমার ধারণা এখানে thoughts

জেনেরিক সিস্টেম-ব্যাপী অপারেশন / ক্রিয়া / {ক্রিয়া}

কোনও রিসোর্সের ধরণ / ক্রিয়া / {রিসোর্স} / {ক্রিয়া to সম্পর্কিত নির্দিষ্ট অপারেশন

কোনও সংস্থান / ক্রিয়া / {সংস্থান to / {আইডি} / {ক্রিয়াকলাপ to

আপনার ক্ষেত্রে, ক্যাশে সম্ভবত সিস্টেম-ব্যাপী / ক্রিয়া / পুনরায় লোড_ক্যাচ


0

একটি আরএসটি ওয়েব পরিষেবাদিতে ক্রিয়াকলাপ করতে আমার কোন HTTP ক্রিয়া ব্যবহার করা উচিত?

কোনও আরইএসটি পরিষেবার বিশদ বিবেচনা করার সময়, এই তাত্পর্যপূর্ণ বিবেচনাটি প্রায়শই দরকারী: আপনি কীভাবে কোনও ওয়েব সাইট দিয়ে এটি প্রয়োগ করবেন?

এইচটিএমএল কেবলমাত্র জিইটি এবং পোষ্ট অনুরোধগুলির বর্ণনা দিতে পারে। সুতরাং আমরা সেখানে অনুসন্ধান করতে শুরু করতে পারেন।

Is GETউপযুক্ত? এই প্রশ্নের উত্তর দিতে, আমাদের ক্লায়েন্ট এবং মধ্যবর্তী উপাদানগুলির জন্য অনুমোদিত যে অনুমানগুলি সম্পর্কে ভাবতে হবে GET। এর শব্দার্থবিদ্যা GETহয় নিরাপদ

ক্লায়েন্ট কোনও টার্গেট রিসোর্সে নিরাপদ পদ্ধতি প্রয়োগের ফলে উত্স সার্ভারে কোনও রাজ্য পরিবর্তন করার অনুরোধ করে না এবং প্রত্যাশা করে না। তেমনিভাবে, নিরাপদ পদ্ধতির যুক্তিসঙ্গত ব্যবহারের ফলে উত্স সার্ভারের কোনও ক্ষতি, সম্পত্তির ক্ষতি বা অস্বাভাবিক বোঝা হওয়ার আশঙ্কা করা হয় না।

এর অর্থ নিহিত, ক্লায়েন্ট এবং মধ্যবর্তী উপাদানগুলির নিজস্ব উদ্বেগ মেটাতে প্রয়োজনীয় হিসাবে ঘন ঘন একটি জিইটি অনুরোধ জানার বিচক্ষণতা রয়েছে। মাকড়সাগুলি তাদের সূচকগুলি আপডেট করতে নির্বিচারে সংস্থান করতে পারে। ক্যাচগুলি প্রাক-আনতে পারে। অবিশ্বস্ত নেটওয়ার্কে, সর্বনিম্ন-এক-প্রতিক্রিয়া নিশ্চিত করতে হারিয়ে যাওয়া বার্তাগুলি যতবার প্রয়োজন তত ঘন ঘন পুনরায় চেষ্টা করা যেতে পারে।

এটি কনফিগারেশন, ক্যাশে ইত্যাদি পুনরায় লোড করতে ব্যবহৃত হবে

যদি এইগুলি ব্যয়বহুল জিনিস হয় তবে আপনি চান না ক্লায়েন্টরা তাদের নিজস্ব বিবেচনার ভিত্তিতে এই অনুরোধগুলি জারি করুন।

POSTঅন্যদিকে, কার্যকরভাবে নিয়ন্ত্রণহীন - এটি জেনেরিক ক্লায়েন্টগুলি যে মঞ্জুরি দেয় তা প্রচুর পরিমাণে হ্রাস করে। আপনি অনুমানমূলক পোষ্ট অনুরোধগুলি তৈরি করার উপাদানগুলি পান না কারণ তারা এটি করতে দোষযুক্ত হবেন - স্ট্যান্ডার্ডের কিছুই এটি ঠিক আছে বলে জানায় না।

PUT, PATCH, DELETE... এই তুলনায় আরো নির্দিষ্ট শব্দার্থবিদ্যা সঙ্গে অনিরাপদ পদ্ধতি POST; তারা উপযুক্ত কিনা তা আপনার রিসোর্স মডেলের উপর নির্ভর করে।

মনে রাখার জন্য একটি গুরুত্বপূর্ণ ধারণা হ'ল এইচটিটিপি পদ্ধতিগুলি ডকুমেন্ট ডোমেনের অন্তর্ভুক্ত ( জিম ওয়েবারের ২০১১ আলাপ দেখুন ), আপনি যে প্রভাবগুলি বর্ণনা করছেন তা সম্ভবত নথির ডোমেনের অংশ নয়, তবে ডকুমেন্টগুলি পরিবর্তিত হওয়ার পরিবর্তে পার্শ্ব প্রতিক্রিয়াগুলি ডেকে আনা হবে । কাজটি করার জন্য আপনি কীভাবে আপনার দস্তাবেজগুলি সংগঠিত করেন সে ক্ষেত্রে এটি আপনাকে প্রচুর স্বাধীনতা দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.