ক্রোম দেব সরঞ্জামগুলি নেটওয়ার্ক ট্যাবে যেমন দেখা যায়, "অনুরোধ পেলোড" বনাম "ফর্ম ডেটা" এর মধ্যে পার্থক্য কী


244

আমার একটি পুরানো ওয়েব অ্যাপ্লিকেশন রয়েছে যা আমাকে সমর্থন করতে হবে (যা আমি লিখিনি)।

আমি যখন কোনও ফর্ম পূরণ করে জমা দিই এবং Chrome এ "নেটওয়ার্ক" ট্যাবটি পরীক্ষা করে দেখি আমি "অনুরোধ পেইলোড" দেখি যেখানে আমি সাধারণত "ফর্ম ডেটা" দেখতে পাই। দুজনের মধ্যে পার্থক্য কী এবং কখন একজনের পরিবর্তে অন্যটির প্রেরণ করা হবে?

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


সম্ভাব্য সদৃশ stackoverflow.com/questions/10494574
lefloh


2
তবুও দুজনের মধ্যে পার্থক্য কী তা পান না। "অনুরোধ পেলোড" কি কেবল একটি অনুরোধ যা কোনও প্রকারের সাথে এনকোড করা হয়নি?
red888

উত্তর:


274

অনুরোধ পে-লোড - বা আরও সুনির্দিষ্ট হওয়ার জন্য: এইচটিটিপি রিকোয়েস্টির পে- লোড বডি - এমন একটি ডেটা হ'ল সাধারণত কোনও পোষ্ট বা পুট অনুরোধের মাধ্যমে প্রেরণ করা হয় । এটা তোলে হেডার পর অংশ এবং CRLFএকটি এর HTTP- র অনুরোধ

একটি অনুরোধ এর Content-Type: application/jsonমত দেখতে হতে পারে:

POST /some-path HTTP/1.1
Content-Type: application/json

{ "foo" : "bar", "name" : "John" }

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

আপনি যদি এইচটিএমএল-ফর্মটি জমা দেন method="POST"এবং Content-Type: application/x-www-form-urlencodedবা Content-Type: multipart/form-dataআপনার অনুরোধটি এর মতো দেখাতে পারে:

POST /some-path HTTP/1.1
Content-Type: application/x-www-form-urlencoded

foo=bar&name=John

এক্ষেত্রে ফর্ম-ডেটা হ'ল অনুরোধ পেলোড। এখানে ব্রাউজারটি আরও জানে: এটি জানেন যে বারটি জমা দেওয়া ফর্মটির ইনপুট-ফিল্ড ফুটির মান। এবং এটিই আপনাকে প্রদর্শন করছে।

সুতরাং, তারা Content-Typeডেটা জমা দেওয়ার পদ্ধতিতে নয় তবে ভিন্ন । উভয় ক্ষেত্রে ডেটা বার্তা-বডিতে থাকে। এবং ক্রোম আলাদা করে তোলে কীভাবে ডেটা বিকাশকারী সরঞ্জামগুলিতে আপনাকে ডেটা উপস্থাপন করা হয়।


3
আকার ইত্যাদির ক্ষেত্রে একে অপরের চেয়ে বেশি পছন্দ করার কোনও কারণ আছে কি? বিশেষত লাইটওয়েট এজেএক্স কলের জন্য?
ব্যবহারকারী

@ বাফার দুঃখিত, আমি আপনার প্রশ্নটি বুঝতে পারি না।
লেফ্লোহ

3
আমি যদি একটি এজেএক্স কল প্রেরণ করি তবে আমি কন্টেন্ট-টাইপকে সেট করতে পারি jsonবা হয় x-www-form-urlencoded। পূর্ববর্তীটি url ক্যোয়ারী হিসাবে এনকোড করার সময় অনুরোধটি পেলোড হিসাবে ডেটা প্রেরণ করে। দুটোই ঠিকঠাক কাজ করছে বলে মনে হচ্ছে। তাদের মধ্যে একটি পছন্দ করার কারণ আছে? আমি বেশিরভাগ ওয়েবসাইট টুইটার, গুগল, ফেসবুক, স্ট্যাকওভারফ্লো সেট কনটেন্ট টাইপের মতো দেখতে পাই x-www-form-urlencoded। কোন নির্দিষ্ট কারণ?
ব্যবহারকারী

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

13

ক্রোমে, 'সামগ্রী-ধরণের: অ্যাপ্লিকেশন / জসন ' এর অনুরোধ পেইডলয়েডের অনুরোধ হিসাবে দেখায় এবং ডেটা জসন অবজেক্ট হিসাবে প্রেরণ করে।

তবে 'বিষয়বস্তুর ধরণ: অ্যাপ্লিকেশন / x-www-form-urlencoded' এর সাথে অনুরোধ ফর্ম ডেটা দেখায় এবং কী হিসাবে মান প্রেরণ করে : মান জুটি , সুতরাং যদি আপনার কোনও কীতে অবজেক্টের অ্যারে থাকে তবে এটি কীটির মানকে ফ্ল্যাট করে:

{ Id: 1, 
name:'john', 
phones:[{title:'home',number:111111,...},
        {title:'office',number:22222,...}]
}

পাঠায়

{ Id: 1, 
name:'john', 
phones:[object object]
phones:[object object]
}

পিএইচপি অবশ্যই খারাপ। অ্যাপ্লিকেশন / x-www-form-urlencoded এর জনপ্রিয়তা পিএইচপি এর জনপ্রিয়তা দ্বারা সংজ্ঞায়িত করা হয়।
ব্রায়ান হক

4
ডাউনভোটেড কারণ "জসন অবজেক্ট" এর মতো কোনও জিনিস নেই। প্রেরিত জসন ডেটা একটি সরল স্ট্রিং হিসাবে প্রেরণ করা হয় কারণ জসন মূলত একটি স্ট্রিং। আপনি অবশ্যই এটি জাসন_কেনডের সাহায্যে একটি "স্ট্যান্ডার্ড" অবজেক্টে রূপান্তর করতে পারেন তবে এটি "জসন অবজেক্ট" হিসাবে তৈরি করে না।
ভোলকান উলুকুট

ঠিক আছে, আমি মনে করি জাভাস্ক্রিপ্ট জসন টেম্পলেট অবজেক্ট বা কেবল জাভাস্ক্রিপ্ট
মোহাম্মদরেজা

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