HTTP পুনর্নির্দেশ: 301 (স্থায়ী) বনাম 302 (অস্থায়ী)


381

ক্লায়েন্টের কি অন্যরকম আচরণ করার কথা? কিভাবে?


আরএফসি 2616 - HTTP স্থিতি কোডগুলি আমি সেখানে সমস্ত কিছু পুনরাবৃত্তি করতে পারি, তবে এটি একেবারে স্পষ্টভাবে জানিয়েছে;)
টাইমেন

2
এটি অনুমান করার মতো যে আরও অস্থায়ী পুনঃনির্দেশগুলির জন্য 303 এবং 307 স্থিতি কোডগুলি সরবরাহ করে।
প্যাট্রিক ম্যাকএলহানি

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

উত্তর:


569

স্থিতি 301 এর অর্থ সম্পদ (পৃষ্ঠা) স্থায়ীভাবে একটি নতুন জায়গায় সরিয়ে নেওয়া হয়েছে। ক্লায়েন্ট / ব্রাউজারটি আসল অবস্থানটির জন্য অনুরোধ করার চেষ্টা করা উচিত নয় তবে এখন থেকে নতুন অবস্থানটি ব্যবহার করা উচিত।

স্থিতি 302 এর অর্থ হ'ল সংস্থানটি অস্থায়ীভাবে অন্য কোথাও অবস্থিত এবং ক্লায়েন্ট / ব্রাউজারটি মূল url এর অনুরোধ করা চালিয়ে যাওয়া উচিত।


12
ধন্যবাদ. এর অর্থ কি এই যে আমি যদি 301 (স্থায়ী) পুনর্নির্দেশটি ব্যবহার করি তবে ক্লায়েন্ট আবার পুরানো অবস্থানটি পুনরুদ্ধার না করে এবং তার পরিবর্তে সর্বদা সরাসরি নতুন URL টি ব্যবহার করার সিদ্ধান্ত নিতে পারে?
ফ্লাইবায়ার

18
একদম ঠিক! প্রকৃতপক্ষে, চশমা অনুসারে, ক্লায়েন্টটি সর্বদা নতুন জায়গায় যেতে হবে।
ফিলিপ লেবার্ট

7
কিন্তু একটি ব্রাউজারে, এটি কীভাবে প্রভাবিত করে? উদাহরণস্বরূপ, পিছনে বোতামে ইতিহাসটি পুনরায় লেখার জন্য, 301-এ ভুলটির দিকে ফিরে যাওয়া এড়াতে? আপনি যদি পুরানো কোনওটিতে ক্লিক করেন তবে নিঃশব্দে 301 এর উপরে বুকমার্ক পরিবর্তন করছেন?
জাভি মন্টেরো

9
@ জাভিমন্টেরো বেশিরভাগ আধুনিক ব্রাউজারগুলি 301s ক্যাশে করে এবং 6 মাস অবধি মূল উত্সটির অনুরোধ করতে বিরক্ত করবে না
জন

34
HTTP স্থিতি কোডগুলি মনে রাখার ট্রিক 301-> Perm এবং 302-> টেম্পোর পুনঃনির্দেশ দুটি টি দিয়ে শুরু হয়, টেম্পোরারি টি দিয়ে শুরু হয় একইভাবে
স্কটকেট

108

যখন কোনও সার্চ ইঞ্জিন স্পাইডার কোনও ওয়েবপৃষ্ঠার প্রতিক্রিয়া শিরোনামে 301 স্থিতি কোডটি খুঁজে পায়, তখন এটি বুঝতে পারে যে এই ওয়েবপৃষ্ঠাটি আর বিদ্যমান নেই, এটি প্রতিক্রিয়াতে অবস্থানের শিরোনাম অনুসন্ধান করে এবং নতুন সূচীযুক্ত ইউআরএলটিকে নতুনের সাথে প্রতিস্থাপন করে এবং পেজরঙ্ক স্থানান্তর করবে ।

সুতরাং অনুসন্ধান ইঞ্জিনটি সমস্ত সূচকযুক্ত ইউআরএলকে নতুন করে রিফ্রেশ করে যা নতুন ইউআরএল (301 পাওয়া যায়) এর ফলে এটি আপনার পুরানো ওয়েবপৃষ্ঠা ট্র্যাফিক, পেজর্যাঙ্ক ধরে রাখবে এবং এটিকে নতুনটিতে সরিয়ে দেবে (আপনি আপনাকে পুরানো ওয়েবপৃষ্ঠার ট্র্যাফিক হারাবেন না)।

ব্রাউজার: যদি কোনও ব্রাউজার 301 স্থিতি কোডটি খুঁজে পায় তবে এটি নতুন ইউআরএল দিয়ে পুরানো ইউআরএলটির ম্যাপিংকে ক্যাশে করে, ক্লায়েন্ট / ব্রাউজারটি মূল অবস্থানটির জন্য অনুরোধ করার চেষ্টা করবে না তবে ক্যাশে সাফ না হওয়া থেকে এখন থেকে নতুন অবস্থানটি ব্যবহার করবে না।

এখানে চিত্র বর্ণনা লিখুন

যখন কোনও সার্চ ইঞ্জিন স্পাইডার কোনও ওয়েবপৃষ্ঠার জন্য 302 স্থিতি খুঁজে পায়, এটি কেবলমাত্র অস্থায়ীভাবে নতুন অবস্থানে পুনর্নির্দেশ করবে এবং উভয় পৃষ্ঠাকে ক্রল করবে। পুরানো ওয়েবপৃষ্ঠা ইউআরএল এখনও অনুসন্ধান ইঞ্জিন ডাটাবেসে বিদ্যমান এবং এটি সর্বদা পুরানো অবস্থানটির জন্য অনুরোধ করার এবং এটি ক্রল করার চেষ্টা করে। ক্লায়েন্ট / ব্রাউজারটি এখনও মূল অবস্থানটির জন্য অনুরোধ করার চেষ্টা করবে।

এখানে চিত্র বর্ণনা লিখুন

কীভাবে এটি এএসপেট সি # তে কার্যকর করা যায় এবং অনুসন্ধান ইঞ্জিনগুলিতে কী প্রভাব পড়বে সে সম্পর্কে আরও পড়ুন - http://www.dotnetbull.com/2013/08/301-permanent-vs-302-temporary-status-code-aspnet -csharp-Implementation.html


35

সন্ধান ইঞ্জিনগুলিতে সূচকের জন্য বেশিরভাগ 301 বনাম 302 গুরুত্বপূর্ণ, কারণ তাদের ক্রলাররা এটিকে অ্যাকাউন্টে নেয় এবং 301 ব্যবহার করার সময় পেজর্যাঙ্ক স্থানান্তর করে।

দেখুন পিটার লি এর উত্তর আরো বিস্তারিত জানার জন্য।


20

301 হ'ল অনুরোধ করা সংস্থানটি একটি নতুন স্থায়ী ইউআরআই অর্পণ করা হয়েছে এবং ভবিষ্যতে এই উত্সের কোনও রেফারেন্স প্রত্যাবর্তিত ইউআরআই ব্যবহার করেই করা উচিত।

302 হ'ল অনুরোধ করা সংস্থানটি ভিন্ন ইউআরআইয়ের অধীনে অস্থায়ীভাবে বসবাস করে।

যেহেতু উপলক্ষ্যে পুনঃনির্দেশটি পরিবর্তন করা যেতে পারে, তাই ক্লায়েন্টকে ভবিষ্যতের অনুরোধগুলির জন্য অনুরোধ-ইউআরআই ব্যবহার করা চালিয়ে যাওয়া উচিত।

ক্যাশে-নিয়ন্ত্রণ দ্বারা নির্দেশিত বা শিরোনাম ক্ষেত্রের মেয়াদ শেষ হলে এই প্রতিক্রিয়াটি কেবলমাত্র ক্যাচযোগ্য ble


1
301 সুতরাং বোধগম্য হয়, তবে আমি 302 এর জন্য একটি ভাল উদাহরণ ব্যবহার করে আসতে একটি কঠিন সময় পার করছি ।
বব স্টেইন

4
302 টি পুনর্নির্দেশের উদাহরণ হিসাবে @ ববস্টেইন-ভিসিবোন: কোডের সাথে একটি ফাইল ওল্ড.এফপি তৈরি করুন <?php header("location: http://example.com/new.php"); ?>এবং নতুন.এফপি ফাইল করুন - <?php echo 'I am new'; ?>এবং লিঙ্কটিতে যান । "আমি নতুন" লেখাটি পুনর্নির্দেশ এবং প্রদর্শন করবে। তারপরে কোডটি Old.php এ প্রতিস্থাপন করুন <?php echo 'I am old'; ?>এবং লিঙ্কে যান । আপনি "আমি পুরানো" লেখাটি দেখতে পাবেন। আপনি যদি 301 পুনর্নির্দেশকে ওল্ড.এফপিতে সম্পাদন করে থাকেন তবে আপনি পুরানো.এফপি কোডের পরিবর্তনের পরেও "আমি নতুন" লেখাটি দেখতে পেতাম।
প্রেরিত 11

2
@ ববস্টাইন-ভিসিবোন আমার একটি পৃষ্ঠা রয়েছে যা অবনতিযুক্ত এবং দেখানো যায় না। আমাদের একটি নতুন পৃষ্ঠা তৈরি করা দরকার তবে কিছুক্ষণের জন্য প্রস্তুত হবে না। আমরা বিদ্যমান পৃষ্ঠায় একটি অস্থায়ী পুনরায় সরাসরি ব্যবহার করি যা দর্শকদের জন্য আমাদের দরকারী। নতুন পৃষ্ঠাটি তৈরি হয়ে গেলে, এরপরে আমরা এটিতে স্থায়ী পুনঃনির্দেশ ব্যবহার করব।
এডিসি

4
302 দরকারী যদি আপনার গন্তব্য URL টি রাজ্যের উপর নির্ভর করে।
ব্রায়ান

7
আমি এখন এটি একটি সময় হয়েছে কিন্তু এখানে একটি ভাল উদাহরণ। ওয়েবকমিকসে সাধারণত একটি ইউআরএল থাকে যা সর্বশেষতম কমিকের দিকে নিয়ে যায়। যদি এটি হয় webcomic.com/latestএবং webcomic.com/some-comic-title301 এর সাথে পুনঃনির্দেশিত হয় তবে ব্রাউজারটি সর্বদা "কিছু-কমিক-শিরোনাম" এ পুনঃনির্দেশিত হবে। এমনকি পরবর্তী কমিক প্রকাশিত হওয়ার পরে এবং "সর্বশেষ" এখন "আরও কমিক-শিরোনাম" এ পুনঃনির্দেশ করে ... এটি এখানে 302 ভাল হবে।
হাসান

17

301 পুনঃনির্দেশগুলি অনির্দিষ্টকালের জন্য ক্যাশ করা হয় (কমপক্ষে কিছু ব্রাউজার দ্বারা)।

এর অর্থ, আপনি যদি 301 সেট আপ করেন তবে সেই পৃষ্ঠাটি দেখুন, আপনি কেবল পুনঃনির্দেশিত হন না, তবে সেই পুনঃনির্দেশটি ক্যাশে হয়ে যায়।

আপনি যখন সেই পৃষ্ঠাটি আবার দেখেন, আপনার ব্রাউজার * এমনকি সেই ইউআরএলটির অনুরোধ করতেও বিরক্ত করে না, এটি কেবল ক্যাশেড পুনঃনির্দেশ লক্ষ্যতে যায়।

ক্যাশে সেই পুনঃনির্দেশের সাথে দর্শনার্থীর জন্য 301 পূর্বাবস্থায় ফেলার একমাত্র উপায়, মূল ইউআরএল ** এ পুনঃনির্দেশ। সেক্ষেত্রে ব্রাউজারটি লুপটি লক্ষ্য করবে এবং অবশেষে প্রবেশ করা URL টি অনুরোধ করবে request

স্পষ্টতই, আপনি যদি ফেসবুক বা অন্য কোনও উত্সটিতে পুরোপুরি নিয়ন্ত্রণাধীন না হয়ে 301 করার সিদ্ধান্ত নিয়েছিলেন তবে এটি কোনও বিকল্প নয়।

দুর্ভাগ্যক্রমে, অনেক হোস্টিং সরবরাহকারী তাদের অ্যাডমিন ইন্টারফেসে কেবল "পুনর্নির্দেশ" নামে একটি বৈশিষ্ট্য সরবরাহ করে যা একটি 301 পুনঃনির্দেশ করে। যদি আপনি এটি অস্থায়ীভাবে শীঘ্রই শীঘ্রই পৃষ্ঠা হিসাবে ফেসবুকে আপনার ডোমেনটিকে পুনর্নির্দেশের জন্য ব্যবহার করে থাকেন তবে আপনি মূলত স্ক্রু হয়ে গেছেন।

* কমপক্ষে ক্রোম এবং ফায়ারফক্স, কতক্ষণ ব্রাউজারগুলি এইচটিটিপি 301 কে ক্যাশে করে? । স্রেফ Chrome 45 দিয়ে এটি ব্যবহার করে দেখুন Edit

** আমি জাভাস্ক্রিপ্ট চেষ্টা করেছি window.location = '', কারণ এটি সমাধান হবে যা বেশিরভাগ ক্ষেত্রে প্রয়োগ করা যেতে পারে - এটি কার্যকর হয় না। এটি একটি সনাক্ত করা অসীম লুপের ফলস্বরূপ। যাইহোক, পিএইচপি header('Location: new.url')লুপ বিরতি দেয়

নীচের লাইন: কেবলমাত্র 301 টি ব্যবহার করুন যদি আপনি নিশ্চিত হন যে আপনি আর কখনও এই URL টি ব্যবহার করবেন না। সাধারণত কখনই রুট দিরে নেই (উদাহরণ.com/)


7

301 এর মূল সমস্যাটি হ'ল ব্রাউজারটি পুনর্নির্দেশটিকে ক্যাশে করবে এমনকি আপনি যদি সার্ভার স্তর থেকে পুনঃনির্দেশটি অক্ষম করেন।

আপনি যদি একটি স্বল্প রক্ষণাবেক্ষণ উইন্ডোর জন্য পুনর্নির্দেশটি সক্ষম করে থাকেন তবে 302 ব্যবহার করা সর্বদা ভাল।


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