भूल गए अनुरोध?


52

मैं HTTP HEADअनुरोध का उपयोग करके भेजना चाहूंगा wget। क्या यह संभव है?

जवाबों:


59

यह wget नहीं है, लेकिन आप कर्ल का उपयोग करके काफी आसानी से कर सकते हैं।

curl -I http://www.superuser.com/

इस उत्पादन का उत्पादन:

HTTP/1.1 301 Moved Permanently                        
Content-Length: 144                       
Content-Type: text/html; charset=UTF-8     
Location: http://superuser.com/
Date: Sat, 09 Oct 2010 19:11:50 GMT

यह वही है जो मैं चाहता हूं।
ग्यारहवीं जेले

1
-Iके बराबर है --head
निकोलस मार्चिल्डन

1
आप स्व-हस्ताक्षरित प्रमाणपत्र के आधार की जरूरत है https, तो आप भी जोड़ सकते हैं -kया--insecure
माइक Aski

36

प्रयत्न, कोशिश:

wget -S --spider www.example.com

आप किसी फ़ाइल पर HTTP प्रतिक्रिया लिखने से -O /dev/nullरोकने के लिए भी पास कर सकते हैं wget


2
-Sहोगा दिखाने के हेडर, लेकिन यह एक कार्यान्वित GETएक, नहीं HEAD। दूसरे शब्दों में, यह पूरे URL को लाएगा।
Dan Dascalescu

9
wget -S --spider http://localhostअपाचे सर्वर में बनाया गया लॉग है127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
कैजुअल कोडर

20

कर्ल की कोई आवश्यकता नहीं है ।

Wget के साथ, जोड़ने --spiderका मतलब है कि आप एक भेजना चाहते हैं HEAD(जैसा कि करने के लिए विरोध अनुरोध GETया POST)।

यह जाँचने का एक महानतम तरीका है कि कोई URL जवाब देता है या नहीं। आप उदाहरण के लिए स्क्रिप्टेड चेक में इसका उपयोग कर सकते हैं, और HEADऑपरेशन सुनिश्चित करेगा कि आप न तो नेटवर्क पर और न ही लक्ष्य वेबसर्वर पर कोई भार डालें।

बोनस जानकारी: यदि Wget सर्वर से HTTP त्रुटि 500 ​​प्राप्त करता है जब यह प्रदर्शन करता है तो HEADयह GETउसी URL के विरुद्ध प्रदर्शन करने के लिए आगे बढ़ेगा । मैं इस डिजाइन के लिए तर्क नहीं जानता। यही वजह है कि आप देख सकते हैं दोनों एक है HEAD और एक GETअनुरोध सर्वर के खिलाफ किया जा रहा है। यदि कुछ भी गलत नहीं है, तो केवल एक HEADअनुरोध किया जाता है। आप --triesकेवल एक प्रयास में Wget को सीमित करने के विकल्प के साथ इस कार्यक्षमता को अक्षम कर सकते हैं ।

सब के सब, मैं एक यूआरएल जवाब दे रहा है तो यह परीक्षण के लिए सलाह देते हैं:

# This works in Bash and derivatives
wget_output=$(wget --spider --tries 1 $URL  2>&1)
wget_exit_code=$?

if [ $wget_exit_code -ne 0 ]; then
    # Something went wrong
    echo "$URL is not responding"
    echo "Output from wget: "
    echo "$wget_output"
else
    echo "Check succeeded: $URL is responding"
fi

4

wget -S फ़ाइल मिलती है:

कंटेंट-लेंथ: 2316, लंबाई: 2316 (2.3K) [टेक्स्ट / प्लेन], सेविंग टू: `index.html '

wget --spider हेडर मिलता है:

स्पाइडर मोड सक्षम किया गया। जांचें कि क्या दूरस्थ फ़ाइल मौजूद है, लंबाई: अनिर्दिष्ट [पाठ / सादा] दूरस्थ फ़ाइल मौजूद है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.