2012-08-01 36 views
7

क्या ऐसे शीर्षलेख हैं जिन्हें आप HTTP अनुरोध के साथ भेज सकते हैं जो वेब सर्वर को आपको केवल प्रतिक्रिया में हेडर भेजने और शरीर की सामग्री भेजने के लिए नहीं बताता है?एक HTTP अनुरोध भेज रहा है जो सर्वर को केवल हेडर और कोई शरीर लौटने के लिए कहता है?

मैं ऐसे अनुरोध करने के लिए curl का उपयोग कर रहा हूं, लेकिन तकनीकी रूप से मुझे लगता है कि अनुरोध के हिस्से के रूप में सरल हेडर भेजा जा रहा है।

उदाहरण के लिए, 304 संशोधित HTTP प्रतिक्रिया कोड मौजूद नहीं है। जब आप अपने कैश टैग या डेटाटाइम जानकारी के साथ सर्वर से अनुरोध करते हैं, तो सर्वर उस का पता लगा सकता है और केवल हेडर को प्रतिक्रिया के रूप में लौटा सकता है जो उपयोगकर्ता एजेंट को उनके कैश को प्रतिक्रिया के रूप में उपयोग करने के लिए कहता है। इसका मतलब यह है कि जब बैंडविड्थ की बात आती है तो सर्वर से प्रतिक्रिया बहुत छोटी होती है।

लेकिन क्या कोई शीर्षलेख है जो आप उन सर्वरों को भेज सकते हैं जो सर्वर को केवल एक शीर्षलेख लौटाते हैं और कोई शरीर सामग्री नहीं करते हैं?

यहां विचार HTTP अनुरोध करना है जो अन्यथा बड़ी मात्रा में डेटा लौटा सकता है, बहुत छोटा। जैसे एक एपीआई कॉल जो जेएसओएन डेटा या लॉग लौटाएगा, वास्तव में एकमात्र चीज उपयोगकर्ता एजेंट में दिलचस्पी है यह सुनिश्चित कर रहा है कि अनुरोध हो गया और कुछ भी नहीं। यह उस बैंडविड्थ को सर्वर से और सर्वर से कम करने के लिए है जहां शरीर मौजूद हो सकता है, लेकिन उपयोगकर्ता एजेंट क्या कर रहा है इसके संदर्भ में किसी भी तरह से आवश्यक नहीं है।

हालांकि एक एपीआई डिज़ाइन करना संभव होगा जो एक विशिष्ट कस्टम हेडर या व्हाट्नॉट को सुनता है, मैं इसे तब तक नहीं ले जाऊंगा जब तक मुझे यह नहीं करना पड़े। लेकिन मैं यह नहीं ढूंढ पाया कि HTTP अनुरोध करने का मानकीकृत तरीका है जो सर्वर को किसी भी शरीर की सामग्री न भेजने के लिए कहता है?

उत्तर

14

सर्वर इसका समर्थन करता है, वहाँ HEAD कार्रवाई (के रूप में GET या POST के खिलाफ) है। यह सर्वर को केवल हेडर भेजने के लिए कहता है, और कोई शरीर नहीं।

प्रमुख विधि सिवाय इसके कि सर्वर नहीं जवाब में संदेश-शरीर लौटना चाहिए पाने के लिए समान है।

2

आप क्रिया HEAD के लिए देख रहे हैं। आप PHP के साथ कर्ल का उपयोग कर रहे हैं, यह चाल करना होगा:

curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'HEAD'); 
curl_setopt($c, CURLOPT_HEADER, 1); 
curl_setopt($c, CURLOPT_NOBODY, true); 

आप हालांकि पीएचपी उपयोग कर रहे हैं (और यह बहुत अच्छी तरह से भी विभिन्न स्थितियों में माना जा सकता है), स्क्रिप्ट until any output is sent का प्रदर्शन जारी रहेगा (REQUEST_METHOD के तहत नोट करें)। तो यदि आप सर्वर तनाव के बारे में चिंतित हैं, तो आपको फिट बैठने पर कुछ और चाहिए।

मेरे लिए ऐसा लगता है कि आप एक 'पिंग' की तलाश में हैं, तो क्यों न केवल एक फ़ाइल का अनुरोध करें जो कुछ भी नहीं करता है लेकिन कुछ प्रकार का ठीक लौटाता है, शायद यहां तक ​​कि केवल HTTP 200 ओके (यानी एक खाली फ़ाइल)?

+0

मैं HEAD अनुरोध की तलाश में था, हाँ। मैं मुख्य रूप से बैंडविड्थ को कम करने के लिए एक तरीका देख रहा था, न कि सामग्री उत्पादन से सर्वर तनाव (मैं इसे अलग-अलग संभाल दूंगा)। मैं बस कुछ एपीआई नियम या पैरामीटर के बजाय एक मानकीकृत तरीके की तलाश कर रहा था जो ऐसा होता है। लेकिन धन्यवाद! – kingmaple