একটি পোষ্ট এবং একটি পুট HTTP অনুরোধের মধ্যে পার্থক্য কী?


888

তারা উভয়ই শরীরের অভ্যন্তরে সার্ভারে ডেটা প্রেরণ করছে বলে মনে হচ্ছে, তবে কী তাদের আলাদা করে তোলে?


1
এটা কি তোমার প্রশ্নের উত্তর? REST এ PUT বনাম POST
শাহীন জাহেদী

উত্তর:


892

HTTP পুট:

পুট একটি নির্দিষ্ট ইউআরআই এবং ঠিক সেই ইউআরআইতে একটি ফাইল বা সংস্থান রাখে। যদি ইতিমধ্যে সেই ইউআরআইতে কোনও ফাইল বা সংস্থান থাকে তবে পুট সেই ফাইল বা সংস্থানটি প্রতিস্থাপন করে। সেখানে যদি কোনও ফাইল বা সংস্থান না থাকে তবে পুট একটি তৈরি করে। রাখা হয় idempotent কিন্তু আপাতদৃষ্টে বিপরীত মনে হলেও রাখুন প্রতিক্রিয়া ক্যাশেবেল নয়।

পুটের জন্য HTTP 1.1 আরএফসি অবস্থান FC

এইচটিটিপি পোস্ট:

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

অফিসিয়াল HTTP আরএফসি পোস্টটি হতে নির্দিষ্ট করে:

  • বিদ্যমান সংস্থার টিকা;
  • বুলেটিন বোর্ড, নিউজ গ্রুপ, মেলিং তালিকা বা অনুরূপ গ্রুপের নিবন্ধগুলিতে বার্তা পোস্ট করা;
  • ডেটা হ্যান্ডলিং প্রক্রিয়াতে কোনও ফর্ম জমা দেওয়ার ফলাফল হিসাবে ডেটাগুলির একটি ব্লক সরবরাহ করা;
  • অ্যাপেন্ড অপারেশনের মাধ্যমে একটি ডাটাবেস প্রসারিত করা।

পোষ্টের জন্য HTTP 1.1 আরএফসি অবস্থান FC

POST এবং PUT এর মধ্যে পার্থক্য:

আরএফসি নিজেই মূল পার্থক্য ব্যাখ্যা করে:

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

অতিরিক্তভাবে, এবং আরও কিছুটা সংক্ষিপ্তভাবে, আরএফসি 7231 বিভাগ 4.3.4 পুট স্টেটস (জোর যুক্ত করা হয়েছে),

4.3.4। PUT

পুট পদ্ধতিটি অনুরোধ করে যে লক্ষ্য সংস্থার রাজ্যটি হবে createdবা replacedঅনুরোধ বার্তা পেলোডের মধ্যে থাকা প্রতিনিধিত্ব দ্বারা সংজ্ঞায়িত রাষ্ট্রের সাথে।

সঠিক পদ্ধতি ব্যবহার করে, অপ্রাসঙ্গিকভাবে একপাশে:

REST ROA বনাম SOAP এর একটি সুবিধা হ'ল HTTP REST ROA ব্যবহার করার সময়, এটি HTTP ক্রিয়া / পদ্ধতিগুলির যথাযথ ব্যবহারকে উত্সাহ দেয়। সুতরাং উদাহরণস্বরূপ আপনি কেবল PUT ব্যবহার করতে পারবেন যখন আপনি সেই সঠিক অবস্থানে কোনও সংস্থান তৈরি করতে চান। এবং আপনি কখনও কোনও উত্স তৈরি বা সংশোধন করতে জিইটি ব্যবহার করবেন না।


1
আমি চশমা পড়া যে If the Request-URI does not point to an existing resource [...] the origin server *can* create the resource with that URI। সুতরাং PUT এর একটি বাস্তবায়ন যা উপস্থিত না থাকলে একটি উত্স তৈরি করতে অস্বীকার করে সঠিক হবে, তাই না? যদি তা হয় তবে বাস্তবে কি তা ঘটে? বা বাস্তবায়ন সাধারণত PUT এও তৈরি করে?
হুক্রস 10

1
কিছু অতিরিক্ত ব্যতিক্রম যা পার্থক্যটি অত্যন্ত স্পষ্ট করে তোলে তা পরবর্তী URL - dzone.com/articles/put-vs-post
আশীষ শেত্তকার

1
আমি যা বুঝতে পারি না তা হ'ল কীভাবে PUT এর আদর্শশক্তি প্রয়োগ করতে হয়। সাধারণভাবে, বেশিরভাগ এপিআই একটি নতুন সংস্থান তৈরির ক্ষেত্রে কোনও আইডির স্বয়ংক্রিয় জেনারেশন ব্যবহার করবে। এবং পুট-এ, আপনার কোনও উত্স তৈরি করা উচিত যদি তা না থাকে তবে ইউআরআই-তে নির্দিষ্ট আইডি ব্যবহার করুন, তবে আইডি প্রজন্মের পদ্ধতিটি স্বয়ংক্রিয়ভাবে সেট করা থাকলে আপনি কীভাবে এটি করতে পারেন ???
রনি এক্সেলারাড

1
সুতরাং সংক্ষেপে: একটি পোস্টের অনুরোধে ইউআরআই সংস্থানযুক্ত সত্তাকে পরিচালনা করবে এমন সংস্থানটি সনাক্ত করে । একটি পুট অনুরোধে ইউআরআই নিজেকে সত্তা সনাক্ত করে
ড্রাজেন বিজোলোভুক

পোষ্ট পদ্ধতির প্রতিক্রিয়াগুলি ক্যাশেযোগ্য নয়, UNLESS প্রতিক্রিয়াতে উপযুক্ত ক্যাশে-নিয়ন্ত্রণ অন্তর্ভুক্ত হয় অথবা শিরোনাম ক্ষেত্রের মেয়াদ শেষ হয়
NattyC

210

কেবল শব্দার্থক।

একটি এইচটিটিপি PUTঅনুরোধের বডিটি গ্রহণ করবে এবং তারপরে এটি ইউআরআই দ্বারা চিহ্নিত উত্সে সংরক্ষণ করবে।

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

রাখা হয় মত একটি ফাইল আপলোড করুন। কোনও ইউআরআইতে রাখা ঠিক সেই ইউআরআইকে প্রভাবিত করে। কোনও ইউআরআইতে একটি পোস্টে কোনও প্রভাব থাকতে পারে।


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

131

REST- শৈলীর সংস্থানগুলির উদাহরণ দিতে:

"পোষ্ট / বই" বইয়ের একগুচ্ছ তথ্য সহ একটি নতুন বই তৈরি করতে পারে এবং সেই বইটি সনাক্তকারী নতুন ইউআরএলের সাথে প্রতিক্রিয়া জানাতে পারে: "/ বই / 5"।

"পুট / বই / ৫" হয় হয় 5 এর আইডি সহ একটি নতুন বই তৈরি করতে হবে, বা বিদ্যমান বইটি আইডি 5 দিয়ে প্রতিস্থাপন করতে হবে।

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


হাই ভোলিস, আমি কি পোস্ট / বই / 5 ব্যবহার করি, তবে কী হবে? এটা কি সম্পদ নিক্ষেপ করা হবে না?
চ্যানগান

13
আমি মনে করি আদর্শপন্থাটি PUT এবং POST- এর মধ্যে সবচেয়ে স্বাতন্ত্র্য এবং গুরুত্বপূর্ণ পার্থক্য
মার্টিন অ্যান্ডারসন

1
হাই চ্যানগান, উইকিপিডিয়া আপনার "পোষ্ট / বই / 5" কেস সম্পর্কে যা দেয় তা এখানে একটি ব্যাখ্যা: "সাধারণত ব্যবহৃত হয় না the সম্বোধিত সদস্যটিকে তার নিজস্বভাবে একটি সংগ্রহ হিসাবে বিবেচনা করুন এবং এতে একটি নতুন এন্ট্রি তৈরি করুন।"
rdiachenko

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

74
  1. জিইটি : সার্ভার থেকে ডেটা পুনরুদ্ধার করে। অন্য কোন প্রভাব থাকতে হবে।
  2. পোস্ট : একটি নতুন সত্তা তৈরির জন্য সার্ভারে ডেটা প্রেরণ করে। একটি ফাইল আপলোড বা ওয়েব ফর্ম জমা দেওয়ার সময় প্রায়শই ব্যবহৃত হয়।
  3. রাখুন : similiar পোস্ট করার জন্য, কিন্তু একটি বিদ্যমান সত্তা প্রতিস্থাপন করতে ব্যবহৃত।
  4. প্যাচ : PUT এর মতো, তবে বিদ্যমান সত্তার মধ্যে কেবলমাত্র নির্দিষ্ট ক্ষেত্রগুলিকেই আপডেট করতে ব্যবহৃত হয়েছিল।
  5. মুছুন : সার্ভার থেকে ডেটা সরান
  6. ট্র্যাক : সার্ভার কী গ্রহণ করে তা পরীক্ষা করার একটি উপায় সরবরাহ করে। এটি কেবল যা প্রেরণ করা হয়েছিল তা ফেরত দেয়।
  7. বিকল্পগুলি : একটি ক্লায়েন্টকে কোনও পরিষেবার দ্বারা সমর্থিত অনুরোধ পদ্ধতিগুলি সম্পর্কে তথ্য পেতে অনুমতি দেয়। প্রাসঙ্গিক প্রতিক্রিয়া শিরোনাম সমর্থিত পদ্ধতি সহ অনুমতি দিন। প্রকৃত অনুরোধ পদ্ধতি সম্পর্কে সার্ভারকে জানাতে এবং কাস্টম শিরোনাম সম্পর্কে জিজ্ঞাসা করার জন্য প্রিফলাইট অনুরোধ হিসাবে সিওআরএসেও ব্যবহৃত হয়।
  8. শিরোনাম : কেবলমাত্র প্রতিক্রিয়া শিরোনাম প্রদান করে।
  9. সংযোগ : ব্রাউজার দ্বারা ব্যবহৃত যখন এটি জেনে যায় এটি একটি প্রক্সিতে কথা বলে এবং চূড়ান্ত ইউআরআই https: // দিয়ে শুরু হয়। সংযোগের উদ্দেশ্যটি হ'ল শেষ থেকে শেষের এনক্রিপ্ট হওয়া টিএলএস সেশনের অনুমতি দেওয়া, সুতরাং কোনও প্রক্সিতে ডেটা অপঠনযোগ্য।

9
সেরা সংক্ষিপ্ত উত্তর
vibs2006

Https ব্যবহার করার সময় প্রতিটি অনুরোধের আগে সংযোগটি বরখাস্ত করা হয়?
পরিবর্তনশীল

66

পুট বলতে কোনও নির্দিষ্ট ইউআরআইতে "আপলোড" করা স্টাফ, বা সেই ইউআরআই-এ থাকা ইতিমধ্যে যা ওভাররাইট করে তা বোঝানো হয়।

অন্যদিকে, পোষ্ট হ'ল একটি প্রদত্ত ইউআরআই-তে সম্পর্কিত ডেটা জমা দেওয়ার একটি উপায়।

পড়ুন HTTP- র জন্য RFC


45

যতদূর আমি জানি, পুট বেশিরভাগ রেকর্ড আপডেট করার জন্য ব্যবহৃত হয়।

  1. পোস্ট - নথি বা অন্য কোনও সংস্থান তৈরি করতে

  2. পুট - তৈরি করা দস্তাবেজ বা অন্য কোনও সংস্থান আপডেট করতে।

তবে এই পিটিউটি সম্পর্কে পরিষ্কারভাবে বলতে গেলে সাধারণত বিদ্যমান রেকর্ডটি যদি সেখানে থাকে তবে এটি 'প্রতিস্থাপন' করে এবং সেখানে না থাকলে তৈরি করে ..


1
এই প্রসঙ্গে একটি রেকর্ড কি? প্রশ্নটি এইচটিটিপি অনুরোধ সম্পর্কে।
কিশোর

নথি / সংস্থান ইতিমধ্যে উপস্থিত থাকলে পোষ্ট কী করবে? এটি একটি ত্রুটি ছুঁড়ে ফেলবে, বা এটি ঠিক বন্ধ হয়ে যাবে?
আদিত্য পেডনেকর

আমি যা পড়েছি তার বেশিরভাগের উপর ভিত্তি করে পিটিও তৈরি করতে পারে।
অ্যাডারচক্স

19

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


15

দয়া করে দেখুন: http://zacharyvoase.com/2009/07/03/http-post-put-diff/

আমি ওয়েব বিকাশকারীদের দ্বারা একটি জনপ্রিয় ভুল ধারণা দ্বারা ইদানীং বেশ বিরক্ত হয়ে পড়েছি যে একটি উত্স তৈরি করতে একটি পোষ্ট ব্যবহার করা হয়, এবং একটি পুট একটি আপডেট / পরিবর্তন করতে ব্যবহৃত হয়।

আপনি যদি আরএফসি 2616 ("হাইপারটেক্সট ট্রান্সফার প্রোটোকল - এইচটিটিপি / 1.1"), বিভাগ 9.6 ("পুট") এর পৃষ্ঠা 55 টি একবার দেখুন , আপনি দেখতে পাবেন পিটিটি আসলে কী জন্য:

পুট পদ্ধতিটি অনুরোধ করে যে বদ্ধ সত্তা সরবরাহ করা অনুরোধ-ইউআরআইয়ের অধীনে সংরক্ষণ করা উচিত।

POST এবং PUT এর মধ্যে পার্থক্য ব্যাখ্যা করার জন্য একটি কার্যকর অনুচ্ছেদও রয়েছে:

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

এটি আপডেট / তৈরির মধ্যে পার্থক্য সম্পর্কে কিছু উল্লেখ করে না, কারণ এটি সেটার মতো নয়। এটি এর মধ্যে পার্থক্য সম্পর্কে:

obj.set_attribute(value) # A POST request.

এবং এই:

obj.attribute = value # A PUT request.

সুতরাং দয়া করে এই জনপ্রিয় ভুল ধারণা ছড়িয়ে দেওয়া বন্ধ করুন। আপনার আরএফসি পড়ুন।


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

3
এটি যথেষ্ট পরিমাণে উত্সাহিত করা যায় না। একটি REST এপিআইতে PUT এর কোনও স্থান নেই। বেশিরভাগ সময়, POST সঠিক শব্দার্থবিজ্ঞান নির্দেশ করে।
গরুর মাংসের মাংস 16

ভালভাবে বলা হয়নি, তবে সত্যই আরএফসিগুলির একটি সঠিক ব্যাখ্যা। ওয়েব ডেভলপার ওয়ার্ল্ড হ'ল বেশিরভাগ ভুল তথ্যের জলাবদ্ধতা, মনে হয়।
উইলিয়াম টি ফ্রোগার্ড

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

12

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


10

REST বিকাশকারীদের HTTP পদ্ধতিগুলি স্পষ্টভাবে এবং এমনভাবে প্রোটোকলের সংজ্ঞা অনুসারে ব্যবহার করতে বলে definition এই বেসিক আরএসটি ডিজাইনের নীতিটি তৈরি (পঠন, আপডেট) এবং মুছে ফেলা (সিআরইউডি) অপারেশন এবং এইচটিটিপি পদ্ধতিগুলির মধ্যে এক থেকে একের ম্যাপিংকে প্রতিষ্ঠিত করে। এই ম্যাপিং অনুসারে:

The সার্ভারে একটি সংস্থান তৈরি করতে, পোস্ট ব্যবহার করুন।

Resource কোনও উত্স পুনরুদ্ধার করতে, জিইটি ব্যবহার করুন।

A কোনও উত্সের স্থিতি পরিবর্তন করতে বা এটি আপডেট করতে PUT ব্যবহার করুন।

A কোনও উত্স অপসারণ বা মুছতে, মুছুন use

আরও তথ্য: বিশুদ্ধ ওয়েব পরিষেবা: আইবিএম থেকে মূল বিষয়গুলি


আমি মনে করি আপনার
পিট

@ বিফস্টার পোস্ট তৈরি করতে, আপডেট রাখুন, এটা কি ঠিক?
লং এনগুইন

না। পুট আসলে কোনও ইউআরএলে আক্ষরিক বিষয়বস্তু রাখার জন্য এবং এটি খুব কমই একটি REST এপিআইতে রয়েছে। পোষ্টটি আরও বিমূর্ত এবং এতে কোনও ধরণের সামগ্রী যুক্ত করার বিষয় রয়েছে যা "এই সঠিক ফাইলটি এই সঠিক URL এ রাখুন" এর শব্দার্থবিজ্ঞান নেই।
গরুর মাংস

7

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

এগুলি কখন ব্যবহার করবেন:

  • ব্যবহার করুন PUTযখন আপনি একটি একবচন রিসোর্স ইতিমধ্যে রিসোর্স সংগ্রহ এর একটি অংশ যে পরিবর্তন করতে চান। PUTসম্পদটির সম্পূর্ণতা প্রতিস্থাপন করে। উদাহরণ:PUT /resources/:resourceId

    সিডনোট:PATCH আপনি যদি সংস্থানটির কোনও অংশ আপডেট করতে চান তবে ব্যবহার করুন ।


  • POSTআপনি যখন সংস্থানগুলির অধীনে কোনও শিশু সংস্থান যুক্ত করতে চান তখন ব্যবহার করুন।
    উদাহরণ:POST => /resources

সাধারণভাবে:

  • সাধারণত, অনুশীলনে, সর্বদা আপডেট আপডেটেরPUT জন্য ব্যবহার করুন ।
  • সর্বদা তৈরি অপারেশন POSTজন্য ব্যবহার করুন ।

উদাহরণ:

GET / কোম্পানী / রিপোর্ট => সব রিপোর্ট পান
GET / কোম্পানী / রিপোর্ট / {আইডি} => পান প্রতিবেদন তথ্য "ID" দ্বারা চিহ্নিত
POST / কোম্পানী / রিপোর্ট => একটি নতুন প্রতিবেদন তৈরি করুন
PUT / কোম্পানী / রিপোর্ট / {আইডি} => আপডেট "আইডি"
PATCH / সংস্থা / রিপোর্টস / {আইডি} => "আইডি"
DELETE / সংস্থা / সংস্থা / রিপোর্টস / {আইডি} => "আইডি" দ্বারা প্রতিবেদন মুছুন দ্বারা চিহ্নিত প্রতিবেদনের তথ্যের একটি অংশ আপডেট করুন


4

POST এবং PUT এর মধ্যে পার্থক্যটি হ'ল পুট আদর্শবান, এর অর্থ, একই PUT অনুরোধকে একাধিকবার কল করা সর্বদা একই ফলাফল তৈরি করে (যা কোনও পার্শ্ব প্রতিক্রিয়া নয়), অন্যদিকে, পোষ্ট অনুরোধ বারবার কল করাতে পারে ( অতিরিক্ত) একই সংস্থানটি একাধিকবার তৈরি করার পার্শ্ব প্রতিক্রিয়া।

GET : জিইটি ব্যবহারের অনুরোধগুলি কেবল ডেটা পুনরুদ্ধার করে, এটি হ'ল নির্দিষ্ট সংস্থার উপস্থাপনের জন্য এটি অনুরোধ করে

POST: এটি একটি সংস্থান তৈরি করতে সার্ভারে ডেটা প্রেরণ করে। অনুরোধের বডির ধরণটি সামগ্রী-প্রকারের শিরোনাম দ্বারা নির্দেশিত। এটি প্রায়শই সার্ভারে রাষ্ট্রের পার্শ্ব প্রতিক্রিয়া বা পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে

PUT : একটি নতুন সংস্থান তৈরি করে বা অনুরোধ পেইলডের সাথে লক্ষ্য সংস্থার একটি উপস্থাপনা প্রতিস্থাপন করে

PATCH : এটি কোনও সংস্থায় আংশিক পরিবর্তন প্রয়োগ করতে ব্যবহৃত হয়

DELETE : এটি নির্দিষ্ট সংস্থান মুছে দেয়

TRACE : এটি টার্গেট রিসোর্সের পথে বরাবর একটি বার্তা লুপ-ব্যাক পরীক্ষা করে, একটি দরকারী ডিবাগিং প্রক্রিয়া সরবরাহ করে

OPTIONS : এটি লক্ষ্য সংস্থানটির জন্য যোগাযোগ বিকল্পগুলি বর্ণনা করতে ব্যবহৃত হয়, ক্লায়েন্টটি বিকল্পগুলির পদ্ধতির জন্য একটি URL বা পুরো সার্ভারটি উল্লেখ করার জন্য একটি তারকাচিহ্ন (*) নির্দিষ্ট করতে পারে।

HEAD : এটি একটি জিইটি অনুরোধের অনুরূপ প্রতিক্রিয়া চাইবে, তবে প্রতিক্রিয়া সংস্থা ছাড়াই

CONNECT : এটি লক্ষ্য সংস্থান দ্বারা চিহ্নিত সার্ভারে একটি টানেল স্থাপন করে, এসএসএল (এইচটিটিপিএস) ব্যবহার করা ওয়েবসাইটগুলি অ্যাক্সেস করতে ব্যবহার করা যেতে পারে


2

REST- সম্পূর্ণ ব্যবহার

POST একটি নতুন সংস্থান তৈরি করতে ব্যবহৃত হয় এবং তারপরে সংস্থানটি ফেরত দেয় returns URI

EX 
      REQUEST : POST ..../books
        {
        "book":"booName",
        "author":"authorName"
        }

এই কলটি একটি নতুন বই তৈরি করতে পারে এবং সেই বইটি ফেরত দিতে পারে URI

Response ...THE-NEW-RESOURCE-URI/books/5

PUT কোনও রিসোর্স প্রতিস্থাপনের জন্য ব্যবহৃত হয়, যদি সেই সংস্থানটি বিদ্যমান থাকে তবে কেবল এটি আপডেট করুন, তবে যদি সেই সংস্থানটি না থাকে তবে এটি তৈরি করুন,

REQUEST : PUT ..../books/5
{
"book":"booName",
"author":"authorName"
}

সঙ্গে PUTআমরা জানি রিসোর্স শনাক্তকারী কিন্তু POSTনতুন রিসোর্স শনাক্তকারী ফিরে আসবে

REST- সম্পূর্ণ ব্যবহার নয়

POST সার্ভারের পাশ দিয়ে একটি ক্রিয়াকলাপ শুরু করতে ব্যবহৃত হয়, এই ক্রিয়াটি কোনও উত্স তৈরি করতে পারে বা নাও করতে পারে, তবে এই ক্রিয়াটি সর্বদা প্রভাবিত করে এটি সার্ভারের কিছু পরিবর্তন করে always

PUT একটি নির্দিষ্ট ইউআরএলে আক্ষরিক বিষয়বস্তু স্থাপন বা প্রতিস্থাপন করতে ব্যবহৃত হয়

REST- ফুল এবং অ REST- ফুল স্টাইল উভয়েরই অন্য একটি পার্থক্য

POST নন-আইডেম্পোটেন্ট অপারেশন: একই অনুরোধের সাথে একাধিকবার কার্যকর করা হলে এটি কিছু পরিবর্তন ঘটাবে।

PUT আইডেম্পোটেন্ট অপারেশন: একই অনুরোধের সাথে একাধিকবার কার্যকর করা হলে এর কোনও পার্শ্ব-প্রতিক্রিয়া হবে না।


1

এটি উল্লেখযোগ্য হবে যে POSTকিছু সাধারণ ক্রস-সাইট রিকোয়েস্ট জালিয়াতি (সিএসআরএফ) এর আক্রমণের সাপেক্ষে যদিও PUTতা নয়।

নীচের সিএসআরএফ যখন শিকার ভিজিট করে তখন তা সম্ভবPUT হয় নাattackersite.com

আক্রমণের প্রভাব যে শিকার অনিচ্ছাকৃতভাবে একটি ব্যবহারকারী মুছে ফেলে শুধু কারণ এটি (শিকার) লগ-ইন হয় adminউপর target.site.com, গিয়ে আগে attackersite.com:

সাধারণ অনুরোধ (কুকিজ প্রেরণ করা হয়): ( PUTকোনও সমর্থিত বৈশিষ্ট্যের মান নয়)

কোড চালু attackersite.com:

<form id="myform" method="post" action="http://target.site.com/deleteUser" >
    <input type="hidden" name="userId" value="5">
</form>
<script>document.createElement('form').submit.call(document.getElementById('myform'));</script>

এক্সএইচআর অনুরোধ (কুকিজ প্রেরণ করা হয়েছে): ( PUTএকটি প্রাকফ্লাইট অনুরোধ ট্রিগার করবে, যার প্রতিক্রিয়া ব্রাউজারটিকে deleteUserপৃষ্ঠাটি অনুরোধ করা থেকে বিরত করবে )

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://target.site.com/deleteUser");
xhr.withCredentials=true;
xhr.send(["userId=5"]);

1

সহজ কথায় আপনি বলতে পারেন:

1.HTTP পান: এটি এক বা একাধিক আইটেমগুলি পেতে ব্যবহৃত হয়

2.HTTP পোস্ট: এটি একটি আইটেম তৈরি করতে ব্যবহৃত হয়

3.HTTP পুট: এটি কোনও আইটেম আপডেট করতে ব্যবহৃত হয়

৪.এইচটিপি প্যাচ: এটি কোনও আইটেম আংশিকভাবে আপডেট করতে ব্যবহৃত হয়

5.এইচটিটিপি মুছুন: এটি কোনও আইটেম মুছতে ব্যবহৃত হয়


0

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

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

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

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

এই দুটি বেসিক মেথড রয়েছে are GET এবং পোস্ট করুন। তবে এটি তাদের কাঠামো, যা তাদের আলাদা করে তোলে এবং আপনি ব্যাকএন্ডে কোড করেন না। ব্যাকএন্ডে আপনি প্রাপ্ত ডেটা দিয়ে যা খুশি কোড করতে পারেন। তবে "পোষ্ট" -র অনুরোধের সাথে আপনাকে শরীরে ডেটা প্রেরণ / পুনরুদ্ধার করতে হবে এবং ইউআরএল-ঠিকানা লাইনে নয়, এবং "জিইটি" অনুরোধের মাধ্যমে আপনাকে ইউআরএল-ঠিকানারেখায় তথ্য পাঠাতে / পুনরুদ্ধার করতে হবে এবং না শরীর. এখানেই শেষ.

"PUT", "মোছা" এবং এর মতো অন্যান্য সমস্ত পদ্ধতির, তাদের "POST" এর মতো কাঠামো রয়েছে।

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

এছাড়াও URL- ঠিকানালাইনটির দৈর্ঘ্য 1024 টি প্রতীকের মধ্যে সীমাবদ্ধ, যেখানে "POST" -Modod সীমাবদ্ধ নয়। সুতরাং আপনার কাছে যদি প্রচুর পরিমাণে ডেটা থাকে তবে আপনি এটি কোনও জিইটি-অনুরোধের মাধ্যমে পাঠাতে সক্ষম নাও হতে পারেন তবে আপনাকে পোষ্ট-অনুরোধটি ব্যবহার করতে হবে। সুতরাং এটি পোস্ট-অনুরোধের জন্য আরও একটি প্লাস পয়েন্ট।

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


0

PUT এবং POST উভয়ই রেস্ট মেথড।

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

পোষ্ট আদর্শবান নয়, উদাহরণস্বরূপ ক্রিয়েট লক্ষ্যে দুটি পৃথক এন্ট্রি তৈরি করবে সুতরাং এটি আদর্শবান নয় তাই পোষ্টে ক্রিয়েট ব্যাপকভাবে ব্যবহৃত হয়।

প্রতিবার একই পরামিতিগুলির সাথে POST ব্যবহার করে একই কল করা দুটি পৃথক জিনিস ঘটায়, সুতরাং পোষ্টটি সাধারণত দৃশ্যাবলী তৈরির জন্য কেন ব্যবহৃত হয়

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