HTTP की कौन सी छिपी हुई विशेषताएँ आपको ध्यान देने योग्य हैं?
छिपी हुई विशेषताओं से मेरा अभिप्राय उन विशेषताओं से है जो पहले से ही मानक का हिस्सा हैं, लेकिन व्यापक रूप से अज्ञात या अप्रयुक्त हैं।
कृपया प्रति उत्तर केवल एक सुविधा।
जवाबों:
यह 418 हो गया है मैं एक चायदानी स्टेटस कोड, हाइपर टेक्स्ट कॉफ़ी पॉट कंट्रोल प्रोटोकॉल (HTTP का विस्तार) का हिस्सा हूं । मुझे हर बार हँसाता है।
२.३.२ ४१ a मैं एक चायदानी हूँ
एक चायदानी के साथ कॉफी काढ़ा करने का कोई भी प्रयास "418 मैं चायदानी" त्रुटि कोड में परिणाम होना चाहिए। परिणामी निकाय निकाय छोटा और मोटा होना चाहिए।
तथ्य यह है कि रेफर को गलत तरीके से याद किया गया था और यह निर्णय लिया गया था कि गलत वर्तनी को रखा जाना चाहिए।
स्पष्ट उत्तर: PUT, DELETE, TRACE, OPTIONS, CONNECT के तरीके
अधिकांश लोग GET और POST विधियों के बारे में जानते हैं क्योंकि बिल्डिंग बनाते समय उनका उपयोग यही होता है। ब्राउजर भी HEAD का भरपूर इस्तेमाल करते हैं। अन्य विधियां बहुत कम प्रसिद्ध हैं; वे ज्यादातर अधिक विशिष्ट अनुप्रयोगों द्वारा उपयोग किए जाते हैं।
क्या कभी किसी ने 402 भुगतान आवश्यक देखा है ?
मैंने सोचा था कि 204 सिर्फ अगर आपके पास प्रदर्शित करने के लिए कोई सामग्री नहीं है, लेकिन कल्पना ऐसी है कि अतिरिक्त व्यवहार है कि उपयोगकर्ता एजेंट "अपने दस्तावेज़ दृश्य को नहीं बदलेगा।"
HOWTO के अनुसार : AJAX के लिए एक HTTP 204 (कोई सामग्री) वापस करने के लिए अपाचे को कॉन्फ़िगर करें
FWIW, Google वास्तव में कुछ ऐसा ही करता है। जब भी कोई उपयोगकर्ता अपने खोज परिणामों में किसी लिंक पर क्लिक करता है, तो Google क्लिक रिकॉर्ड करने के लिए स्वयं को पिंग करता है; पिंग से प्रतिक्रिया कोड एक HTTP 204 है।
इसके अलावा, 204 कोई सामग्री नहीं प्रस्तावित है कि यह "वेब बग" या "बीकन" के लिए एक अच्छी तकनीक है यदि आप नेटवर्क ट्रैफ़िक के हर अंतिम बाइट पर बचत करना चाहते हैं।
(...) सर्वर मालिकों की इच्छा है कि उस संसाधन के दूरस्थ लिंक हटा दिए जाएं। (...)
वेब स्पाइडर (सबसे विशेष रूप से Google) एक पृष्ठ को डी-इंडेक्स करेगा (आमतौर पर अगले क्रॉल पर) जो 410 लौटाना शुरू करता है।
डायनामिक सामग्री में Last_Modified या ETag हेडर का उपयोग करें
कई बार आपके पास गतिशील सामग्री होती है जो बड़ी और / या महंगी हो सकती है और यह अनुरोध से अनुरोध में परिवर्तित नहीं हो सकती है। आप अपनी उत्पन्न प्रतिक्रिया में एक Last_Modified या ETag हेडर जोड़ सकते हैं।
अपने महंगे डायनामिक कोड के शीर्ष पर आप यह निर्धारित करने के लिए कि क्या सामग्री अनुरोधकर्ता अभी भी चालू है, यह निर्धारित करने के लिए आप if_Modified_Since या if_None_Match का उपयोग कर सकते हैं। यदि यह प्रतिक्रिया स्थिति को "304 अनमॉडिफाइड" में बदल देता है और अनुरोध को समाप्त करता है।
कुछ सर्वर-साइड प्रौद्योगिकियाँ इस तरह की सुविधाएँ औपचारिक रूप से प्रदान करती हैं, लेकिन आप उपरोक्त एएसपी-क्लासिक में भी कर सकते हैं।
ध्यान दें कि यह कैश-कंट्रोल सेट करने से भिन्न होता है, शीर्षकों को समाप्त करता है जिसमें यह सुनिश्चित करता है कि ग्राहक के पास अनुरोध पर नवीनतम जानकारी हमेशा हो।
आप करने के लिए अनुरोध कर सकते हैं फिर से शुरू एक (बड़े) HTTP प्रतिसाद (जैसे फ़ाइल डाउनलोड) का उपयोग कर Range
और If-Range
क्रमशः निर्दिष्ट बाइट रेंज और अद्वितीय फ़ाइल पहचानकर्ता या फ़ाइल संशोधन टाइमस्टैम्प के साथ अनुरोध हेडर। यह संभव है यदि सर्वर ने भेजा है Accept-Ranges: bytes
औरETag
Last-Modified
प्रारंभिक प्रतिक्रिया पर क्रमशः प्रतिक्रिया के साथ या हेडर कि सर्वर बाइट रेंज अनुरोधों, अद्वितीय फ़ाइल पहचानकर्ता और फ़ाइल संशोधन टाइमस्टैम्प का समर्थन करता है।
प्रारंभिक प्रतिक्रिया (जैसे) देख सकती है ETag
यह आमतौर पर फ़ाइल नाम, आकार और अंतिम संशोधन टाइमस्टैम्प से बना होता है):
Accept-Ranges: bytes
ETag: file.ext_1234_1234567890
Content-Range: bytes 0-1233/1234
जब डाउनलोड 1KB (1024 बाइट्स) के लिए डाउनलोड हो जाता है, तो क्लाइंट इसे निम्नानुसार फिर से शुरू कर सकता है:
If-Range: file.ext_1234_1234567890
Range: bytes=1024-
इस प्रतिक्रिया को शरीर में उपयुक्त बाइट्स के साथ वापस करना चाहिए:
Accept-Ranges: bytes
ETag: file.ext_1234_1234567890
Content-Range: bytes 1024-1233/1234
आराम एक इंटरफ़ेस प्रोटोकॉल के रूप में HTTP को अपनी सीमा में धकेलने की कोशिश करता है।
यह एक छिपी हुई विशेषता नहीं है , लेकिन अच्छी तरह से परिभाषित ReST API को देखने से किसी को इस बात पर अच्छी पकड़ मिल सकती है कि HTTP कैसे काम करने के लिए है और HTTP विधियों, स्थिति कोड और हेडर के सरल संयोजन से क्या हासिल किया जा सकता है के अद्भुत उदाहरण मिलेंगे और मेंढक।
ट्रेलर (हेडर के विपरीत)
HTTP 100 (जारी रखें) स्थिति
एक ग्राहक अनुरोध निकाय के साथ अनुरोध संदेश भेज सकता है ताकि यह निर्धारित किया जा सके कि मूल सर्वर अनुरोध को स्वीकार करने के लिए तैयार है।
कुछ मामलों में, यह ग्राहक को शरीर भेजने के लिए अनुचित या अत्यधिक अक्षम हो सकता है यदि सर्वर शरीर को देखे बिना संदेश को अस्वीकार कर देगा ।
दुष्ट ग्राहकों .. और / या जहां बैंडविड्थ से यातायात से बचने के लिए इस्तेमाल किया जा सकता है एक कीमती वस्तु है।
हालाँकि, इस सुविधा के पूर्ण उपयोग के लिए HTTP1.1 क्लाइंट, सर्वर और प्रॉक्सी के लिए कुछ मानदंड हैं। HTTP कनेक्शंस पर आगे पढ़ने के लिए HTTP / 1.1 RFC 2616 देखें ।
http://www.domain.invalid/index.php?id=44
कहा जाता है, अगर क्वेरी ( id=44
) पुनः स्रोत नहीं लौटा सकती है , तो एक स्थिति कोड क्यों नहीं लौटाया जाता है404
?http://www.domain.invalid/index.php?id=foo
कहा जाता है जबकि id
केवल पूर्णांक स्वीकार करता है, तो एक स्थिति कोड क्यों नहीं लौटाया जाता है400
?200
(ठीक है, कोई बात नहीं, आप इसे अच्छी तरह से करते हैं) का उदाहरण है 401
?हां, स्थिति कोड कुछ वेब डेवलपर्स के लिए HTTP की एक तरह की गुप्त कार्यक्षमता है ... लेकिन मुझे आश्चर्य है कि अगर इस प्रोटोकॉल के सभी "सुविधाओं" का सबसे मनोगत इसका RFC नहीं है !
401
है कि यह केवल HTTP-Authentication के लिए है न कि अन्य प्रकार के लिए। Afaik यह एक ब्राउज़र पासवर्ड के लिए उपयोगकर्ता से पूछने के लिए सबसे ब्राउज़र का कारण बनता है।
HTTP-Authentication
... ^ क्या पहिया को सुदृढ़ करने के बजाय इसका उपयोग करना इतना कठिन है?
.htaccess
फाइलें - जो शायद केवल एक है वेबमास्टर अपडेट कर सकते हैं। इस प्रकार एक एप्लिकेशन के उपयोगकर्ता अधिकारों और लॉगिन / लॉगऑफ़ के प्रबंधन के लिए HTTP ऑर्मेंट वास्तव में बहुत फिट नहीं है।
HTTP-Authentication
, और यहां तक कि PHP को संभालने में सक्षम है HTTP-Authentication
( php.net/manual/en/features.http-auth.php )। यदि आप एक वेब डेवलपर हैं, तो आपको सुरक्षा कारणों से केवल सर्वर प्रशासन की मूल बातें प्राप्त करनी होंगी! जैसा कि वेब डेवलपर के पास वेबमास्टर / sysadmin कौशल होना चाहिए, वह आसानी से इस कार्य को कर सकता है।