इसके साथ एक सामान्य ग़लतफ़हमी (और दुरुपयोग) जुड़ी हुई है 403 Forbidden
: सर्वर अनुरोध के बारे में क्या सोचता है, इसके बारे में कुछ भी देना नहीं चाहिए। यह विशेष रूप से कहने के लिए डिज़ाइन किया गया है,
मुझे वह मिलता है जो आप अनुरोध कर रहे हैं, लेकिन मैं अनुरोध को संभालने नहीं जा रहा हूं, चाहे आप कोई भी प्रयास करें। इसलिए कोशिश करना छोड़ दें।
किसी भी यूए या क्लाइंट को यह व्याख्या करनी चाहिए कि इसका मतलब यह है कि अनुरोध कभी काम नहीं करेगा , और उचित रूप से जवाब देगा।
इसमें उपयोगकर्ताओं की ओर से अनुरोधों को संभालने वाले ग्राहकों के लिए निहितार्थ हैं: यदि कोई उपयोगकर्ता लॉग इन नहीं करता है, या गलत खाता है, तो अनुरोध को संभालने वाले ग्राहक को जवाब देना चाहिए, "मुझे खेद है, लेकिन मैं कुछ भी नहीं कर सकता" पहली बार के बाद यह 403
भविष्य के अनुरोधों को संभालना बंद कर देता है। जाहिर है, यदि आप चाहते हैं कि एक उपयोगकर्ता विफलता के बाद भी अपनी व्यक्तिगत जानकारी तक पहुंच का अनुरोध कर सके, तो यह एक उपयोगकर्ता-शत्रुतापूर्ण व्यवहार है।
403
इसके विपरीत है 401 Authorization Required
, जो यह बताता है कि जब तक आप सही क्रेडेंशियल पास नहीं करेंगे, सर्वर अनुरोध को संभाल लेगा। ऐसा आमतौर पर लोग सुनते समय सोचते हैं 403
।
यह भी इसके विपरीत है 404 Page Not Found
, जैसा कि दूसरों ने बताया, न केवल "मुझे वह पृष्ठ नहीं मिल रहा है" कहने के लिए डिज़ाइन किया गया है, बल्कि ग्राहक को यह सुझाव देने के लिए कि सर्वर भविष्य के अनुरोधों के लिए सफलता या विफलता का कोई दावा नहीं करता है।
साथ 401
और 404
, सर्वर क्लाइंट या UA वे कैसे आगे बढ़ना चाहिए के बारे में करने के लिए कुछ नहीं कहा: वे एक अलग प्रतिक्रिया हो रही है की उम्मीद में की कोशिश कर रख सकते हैं।
तो 404
एक पृष्ठ को संभालने का उपयुक्त तरीका है जिसे आप हर किसी को नहीं दिखाना चाहते हैं, लेकिन कुछ भी स्थितियों में आप इसे क्यों नहीं दिखाएंगे इसके बारे में कुछ भी नहीं देना चाहते हैं।
बेशक, यह ग्राहक को अनुरोध करता है कि पेटीएम RFC फ़्लिपेंसी के लिए अनुरोध करता है। दुर्भावनापूर्ण पर्याप्त ग्राहक आकस्मिक रूप से छोड़कर स्थिति कोड के बारे में परवाह नहीं करता है। एक को यह पता होगा कि यह एक छिपे हुए उपयोगकर्ता पृष्ठ (या एक संभावित छिपे हुए उपयोगकर्ता पृष्ठ) की तुलना दूसरे, ज्ञात उपयोगकर्ता पृष्ठों से करता है।
यानी मान लीजिए कि आपका हैंडलर है users/*
। तो मुझे पता है users/foo
, users/bar
और users/baaz
काम, सर्वर लौटने 401
, 403
या 404
के लिए users/quux
इसका मतलब यह नहीं कि मैं इसे करने की कोशिश करने के लिए नहीं जा रहा हूँ, खासकर अगर मुझे विश्वास है वहाँ कारण है है एक quux
उपयोगकर्ता। एक मानक उदाहरण परिदृश्य फेसबुक है: मेरी प्रोफ़ाइल निजी है, लेकिन सार्वजनिक प्रोफ़ाइल पर मेरी टिप्पणी नहीं है। एक दुर्भावनापूर्ण ग्राहक जानता है कि यदि आप 404
मेरे प्रोफाइल पेज पर लौटते हैं तो भी मैं मौजूद हूं।
इसलिए स्थिति कोड दुर्भावनापूर्ण उपयोग के मामलों के लिए नहीं हैं, वे नियमों द्वारा खेलने वाले ग्राहकों के लिए हैं। और उन ग्राहकों के लिए, 401
या एक 404
अनुरोध सबसे उपयुक्त है।