ব্যবহার GET
বা POST
পদ্ধতি ব্যবহার করার সময় পার্থক্য কী ? কোনটি আরও সুরক্ষিত? তাদের প্রত্যেকের (ডিস) সুবিধাগুলি কী?
( একই প্রশ্ন )
ব্যবহার GET
বা POST
পদ্ধতি ব্যবহার করার সময় পার্থক্য কী ? কোনটি আরও সুরক্ষিত? তাদের প্রত্যেকের (ডিস) সুবিধাগুলি কী?
( একই প্রশ্ন )
উত্তর:
এটি সুরক্ষার বিষয় নয়। HTTP প্রোটোকলের সংজ্ঞায়িত পেতে টাইপ হচ্ছে অনুরোধ idempotent , পোস্ট পার্শ্ব প্রতিক্রিয়া হতে পারে না। সরল ইংরেজিতে, এর অর্থ হ'ল জিইটি কিছু পরিবর্তন করার পরিবর্তে কিছু দেখার জন্য ব্যবহৃত হয়, অন্যদিকে পিওএসটি কিছু পরিবর্তন করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি অনুসন্ধান পৃষ্ঠায় জিইটি ব্যবহার করা উচিত, যখন এমন একটি ফর্ম যা আপনার পাসওয়ার্ড পরিবর্তন করে সেটিকে POST ব্যবহার করা উচিত।
এছাড়াও, নোট করুন যে পিএইচপি ধারণাগুলি কিছুটা বিভ্রান্ত করে। একটি পোস্ট অনুরোধ ক্যোয়ারী স্ট্রিং থেকে এবং অনুরোধের অংশের মাধ্যমে ইনপুট পায়। একটি জিইটি অনুরোধ সবেমাত্র ক্যোয়ারী স্ট্রিং থেকে ইনপুট পায়। সুতরাং একটি পোষ্ট অনুরোধ হ'ল জিইটি অনুরোধের সুপারস্টার; আপনি ব্যবহার করতে পারেন $_GET
একটি POST রিকোয়েস্ট, এবং এটা এমনকি জানার জন্য হতে পারে একই নামের পরামিতি আছে $_POST
এবং $_GET
মানে ভিন্ন জিনিস।
উদাহরণস্বরূপ, ধরা যাক আপনার নিবন্ধ সম্পাদনা করার জন্য একটি ফর্ম রয়েছে have আর্টিকেল-আইডি কোয়েরি স্ট্রিং (এবং, সুতরাং এর মাধ্যমে উপলব্ধ $_GET['id']
) হতে পারে, তবে ধরা যাক আপনি নিবন্ধ-আইডি পরিবর্তন করতে চান। নতুন আইডি এর পরে অনুরোধের বডিটিতে উপস্থিত থাকতে পারে ( $_POST['id']
)। ঠিক আছে, সম্ভবত এটি সর্বোত্তম উদাহরণ নয়, তবে আমি আশা করি এটি দুজনের মধ্যে পার্থক্য তুলে ধরেছে।
যখন ব্যবহারকারী কোনও ফর্মের তথ্য প্রবেশ করে এবং জমা ক্লিক করেন, তখন ব্রাউজার থেকে সার্ভারে তথ্য প্রেরণের দুটি উপায় থাকে: ইউআরএলে, বা HTTP অনুরোধের মূল অংশের মধ্যে।
জিইটি পদ্ধতিটি, যা আগে উদাহরণে ব্যবহৃত হয়েছিল, ইউআরএলে নাম / মান জোড় যুক্ত করে। দুর্ভাগ্যক্রমে, একটি ইউআরএল এর দৈর্ঘ্য সীমিত, সুতরাং কেবলমাত্র কয়েকটি পরামিতি থাকলে এই পদ্ধতিটি কেবলমাত্র কাজ করে। যদি ফর্মটি প্রচুর পরিমাণে প্যারামিটার ব্যবহার করে বা পরামিতিগুলিতে প্রচুর পরিমাণে ডেটা থাকে তবে URL কেটে যাবে tr এছাড়াও, URL- এ পাস করা প্যারামিটারগুলি ব্রাউজারের ঠিকানা ক্ষেত্রে দৃশ্যমান হয় কোনও পাসওয়ার্ড প্রদর্শনের জন্য সেরা জায়গা নয়।
জিইটি পদ্ধতির বিকল্প হ'ল পোষ্ট পদ্ধতি। এই পদ্ধতিটি HTTP অনুরোধের শরীরে নাম / মান জুটি প্যাকেজ করে, যা একটি ক্লিনার URL তৈরি করে এবং ফর্ম আউটপুটে কোনও আকারের সীমাবদ্ধতা আরোপ করে না। এটি আরও সুরক্ষিত।
সেরা উত্তরটি প্রথমটি ছিল।
আপনি ব্যবহার করছেন:
GET
ডেটাও 'প্রেরণ' করতে পুরোপুরি সক্ষম, তাই খুব সঠিক উত্তর নয়।
ব্যবহারে দুটি সাধারণ "সুরক্ষা" জড়িত রয়েছে GET
। যেহেতু ইউআরএল স্ট্রিংয়ে ডেটা প্রদর্শিত হচ্ছে তার সম্ভাব্য কেউ অ্যাড্রেস বার / ইউআরএলে আপনার কাঁধের উপর নজর দিচ্ছে এমন কিছু কিছু সেটিকে দেখতে সক্ষম হতে পারে যেমন সেশন কুকি যা আপনার সেশন হাইজ্যাক করার জন্য ব্যবহার করা যেতে পারে। সবার মনে ক্যামেরা ফোন রয়েছে Keep
এর অন্যান্য নিরাপত্তা সংশ্লেষ GET
কি আছে GET
ভেরিয়েবল অনুরোধ করা URL এর অংশ হিসেবে বেশিরভাগ ওয়েব সার্ভার অ্যাক্সেস লগ করতে লগ ইন করা হচ্ছে। পরিস্থিতির উপর নির্ভর করে, নিয়ন্ত্রক জলবায়ু এবং ডেটাগুলির সাধারণ সংবেদনশীলতা এটি সম্ভাব্য উদ্বেগ উত্থাপন করতে পারে।
কিছু ক্লায়েন্ট / ফায়ারওয়ালস / আইডিএস সিস্টেমগুলি GET
অতিরিক্ত পরিমাণে ডেটা থাকার অনুরোধের ভিত্তিতে ভ্রান্ত হতে পারে এবং তাই অবিশ্বাস্য ফলাফল সরবরাহ করতে পারে।
POST
উন্নত কার্যকারিতা যেমন ওয়েব সার্ভারে ফাইল আপলোডের জন্য ব্যবহৃত মাল্টি-পার্ট বাইনারি ইনপুট সমর্থন হিসাবে সমর্থন করে।
POST
একটি সামগ্রীর দৈর্ঘ্যের শিরোনামের প্রয়োজন যা কোনও অ্যাপ্লিকেশন নির্দিষ্ট ক্লায়েন্টের প্রয়োগের জটিলতা বাড়িয়ে তুলতে পারে কারণ জমা দেওয়া ডেটার আকারটি কোনও ক্লায়েন্টের অনুরোধটিকে এককভাবে পাসের ইনক্রিমেন্টাল মোডে গঠন হতে আটকাতে হবে আগাম জানা উচিত। HTTP
এটি কোনও RPC (রিমোট প্রক্রিয়া কল) পরিবহন হিসাবে ব্যবহার করে অপব্যবহার করা বেছে নেওয়ার ক্ষেত্রে একটি ছোট্ট সমস্যা ।
অন্যরা ইতিমধ্যে অর্থগত পার্থক্য এবং এই প্রশ্নের "কখন" অংশটি coveringাকতে একটি ভাল কাজ করেছেন।
আমি পেতে যখন আমি তথ্য পুনরুদ্ধার করছি ব্যবহার থেকে একটি URL এবং পোষ্ট যখন আমি তথ্য পাঠাচ্ছি করার একটি URL।
যদি প্রচুর ডেটা থাকে বা সংবেদনশীল তথ্য বাছাই করে থাকে (তবে সত্যিই সংবেদনশীল জিনিসগুলিরও একটি সুরক্ষিত সংযোগ প্রয়োজন) আপনার পোষ্টটি ব্যবহার করা উচিত।
আপনি যদি চান যে লোকেরা আপনার পৃষ্ঠাগুলি বুকমার্ক করতে সক্ষম হন তবে GET ব্যবহার করুন, কারণ সমস্ত ডেটা বুকমার্কের সাথে অন্তর্ভুক্ত।
জিইটি পদ্ধতিতে লোকেদের রিফ্রেশ করার জন্য কেবল সাবধান হন, কারণ ব্যবহারকারীকে সতর্ক না করেই প্রতিবার ডেটা পাঠানো হবে (পোস্ট কখনও কখনও ব্যবহারকারীকে ডেটা পুনরায় বিক্রয় সম্পর্কে সতর্ক করে দেয়))
এই ডাব্লু 3 সি নথিটি এইচটিটিপি জিইটি এবং পোষ্টের ব্যবহারের ব্যাখ্যা দেয়।
আমি মনে করি এটি একটি অনুমোদিত উত্স।
সংক্ষিপ্তসারটি (নথির 1.3 অংশ):
- ইন্টারঅ্যাকশনটি যদি কোনও প্রশ্নের মতো হয় তবে জিইটি ব্যবহার করুন (যেমন, এটি একটি নিরাপদ অপারেশন যেমন ক্যোয়ারী, রিড অপারেশন বা লুকআপ)।
- পোস্ট ব্যবহার করুন যদি:
- ইন্টারঅ্যাকশনটি আরও একটি আদেশের মতো, বা
- মিথস্ক্রিয়াটি এমনভাবে সংস্থানটির অবস্থার পরিবর্তন করে যা ব্যবহারকারী বুঝতে পারে (যেমন, কোনও পরিষেবার সাবস্ক্রিপশন), বা
- মিথস্ক্রিয়া ফলাফলের জন্য ব্যবহারকারীকে দায়বদ্ধ রাখা হবে।
আপনি যে সার্ভার প্রযুক্তি ব্যবহার করছেন তার সাথে গেট এবং পোস্ট পদ্ধতিগুলির কোনও সম্পর্ক নেই, এটি পিএইচপি, এসপ নেট বা রুবিতে একই কাজ করে। জিইটি এবং পোষ্ট এইচটিটিপি প্রোটোকলের অংশ। চিহ্নিত হিসাবে চিহ্নিত, POST আরও সুরক্ষিত। পোষ্ট ফর্মগুলিও ব্রাউজার দ্বারা ক্যাশে হয় না। পোস্ট প্রচুর পরিমাণে ডেটা স্থানান্তর করতে ব্যবহৃত হয়।
ডেটা পরিবর্তন করার সময় POST ব্যবহার করার কারণ:
এছাড়াও, ক্যোয়ারী স্ট্রিংয়ে সংবেদনশীল তথ্য রাখবেন না (কেবল জিইটি সহ বিকল্প) কারণ এটি অ্যাড্রেস বার, বুকমার্কস এবং সার্ভার লগগুলিতে প্রদর্শিত হয়।
আশা করি এটি ব্যাখ্যা করে কেন লোকেরা POST 'সুরক্ষিত' বলে। আপনি যদি সংবেদনশীল ডেটা প্রেরণ করছেন তবে আপনাকে অবশ্যই এসএসএল ব্যবহার করতে হবে।
GET
এবং POST
এইচটিটিপি পদ্ধতিগুলি যা একই লক্ষ্য অর্জন করতে পারে
GET
মূলত ডেটা পাওয়ার (পুনরুদ্ধার) করার জন্য, এ এর GET
কোনও দেহ থাকা উচিত নয়, তাই কুকিজ বাদে তথ্য প্রেরণের একমাত্র জায়গাটি ইউআরএল এবং ইউআরএলগুলির দৈর্ঘ্য সীমিত, GET
তুলনায় কম সুরক্ষিত POST
কারণ প্রেরিত ডেটার অংশ ইউআরএল
GET
পাসওয়ার্ড, ক্রেডিট কার্ড বা অন্যান্য সংবেদনশীল তথ্য প্রেরণের সময় কখনই ব্যবহার করবেন না ! ইউআরএলটিতে প্রত্যেকের জন্য ডেটা দৃশ্যমান, ডেটা ক্যাশে করা যায়।
GET
ক্ষতিগ্রস্থ যখন আমরা পুনরায় লোড করছি বা ফিরে বোতামটি কল করছি তখন এটি চিহ্নিত চিহ্নিত হবে, পরামিতিগুলি ব্রাউজারের ইতিহাসে থাকবে, কেবলমাত্র ASCII অক্ষর অনুমোদিত।
POST
ডেটা সংরক্ষণ বা আপডেট করা বা কোনও পণ্য অর্ডার করা বা ইমেল প্রেরণের মতো কোনও কিছুতে জড়িত থাকতে পারে। POST
পদ্ধতি একটি শরীর আছে।
POST
সংবেদনশীল এবং গোপনীয় তথ্য সার্ভারের কাছে দেওয়ার জন্য পদ্ধতিটি সুরক্ষিত যা এটি ইউআরএলে কোয়েরি পরামিতিতে দৃশ্যমান হবে না এবং ব্রাউজারের ইতিহাসে পরামিতি সংরক্ষণ করা হয় না। ডেটা দৈর্ঘ্যের উপর কোনও বিধিনিষেধ নেই। যখন আমরা ব্রাউজারটি পুনরায় লোড করছি তখন ব্যবহারকারীকে সতর্ক করা উচিত যে ডেটা আবার জমা দেওয়ার কথা রয়েছে। POST
পদ্ধতিটি বুকমার্ক করা যায় না
আপনি URL থেকে সংস্থানগুলি পুনরুদ্ধার করতে চাইলে GET পদ্ধতিটি ব্যবহার করুন। আপনি যদি আপনার ব্রাউজারের পিছনের বোতামটি চাপান তবে আপনি সর্বদা শেষ পৃষ্ঠাটি দেখতে পেতেন এবং এটি বুকমার্ক করা যেতে পারে, সুতরাং এটি পোস্টের পদ্ধতির মতো নিরাপদ নয়।
আপনি URL টিতে কিছু 'জমা দিতে' চান তবে POST পদ্ধতিটি ব্যবহার করুন। উদাহরণস্বরূপ আপনি একটি গুগল অ্যাকাউন্ট তৈরি করতে চান এবং আপনাকে সমস্ত বিশদ তথ্য পূরণ করতে হবে, তারপরে আপনি 'সাবমিট' বোতামটি চাপুন (পোষ্ট পদ্ধতিটি এখানে বলা হয়), একবার আপনি সফলভাবে জমা দেওয়ার পরে এবং আপনার ব্রাউজারের পিছনে বোতামটি আঘাত করার চেষ্টা করুন , আপনি ভরাট ফর্ম সহ শেষ পৃষ্ঠার পরিবর্তে ত্রুটি বা একটি নতুন ফাঁকা ফর্ম পাবেন।
GET
পদ্ধতি:
এটি কেবল 256 অক্ষরের তারিখ প্রেরণের জন্য ব্যবহৃত হয়
এই পদ্ধতিটি ব্যবহার করার সময়, তথ্যটি ব্রাউজারে দেখা যায়
এটি ফর্মগুলির দ্বারা ব্যবহৃত ডিফল্ট পদ্ধতি
এটি এতটা সুরক্ষিত নয়।
POST
পদ্ধতি:
এটি সীমাহীন ডেটা প্রেরণের জন্য ব্যবহৃত হয়।
এই পদ্ধতির সাহায্যে, তথ্যটি ব্রাউজারে দেখা যায় না
আপনি POST
পদ্ধতিটি স্পষ্টভাবে উল্লেখ করতে পারেন
এটি GET
পদ্ধতির চেয়ে বেশি সুরক্ষিত
এটি আরও উন্নত বৈশিষ্ট্য সরবরাহ করে