ฉันต้องการที่จะส่งคำขอใช้HTTP HEAD wgetเป็นไปได้ไหม?
ฉันต้องการที่จะส่งคำขอใช้HTTP HEAD wgetเป็นไปได้ไหม?
คำตอบ:
มันไม่ใช่ wget แต่คุณสามารถทำได้อย่างง่ายดายโดยใช้ curl
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
-I--headเทียบเท่ากับ
httpsคุณสามารถเพิ่ม-kหรือ--insecure
ลอง:
wget -S --spider www.example.com
คุณสามารถส่งผ่าน-O /dev/nullเพื่อป้องกันwgetการเขียนการตอบสนอง HTTP ไปยังไฟล์
-Sจะแสดงให้เห็นส่วนหัว แต่มันรันไม่ได้GET HEADกล่าวอีกนัยหนึ่งมันจะดึง URL ทั้งหมด
wget -S --spider http://localhostบันทึกที่สร้างในเซิร์ฟเวอร์ apache คือ127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
ไม่มีความจำเป็นใด ๆขด
ด้วย Wget การเพิ่ม--spiderบอกเป็นนัยว่าคุณต้องการส่งHEADคำขอ (ตรงข้ามกับGETหรือPOST)
นี่เป็นวิธีที่ง่ายมากในการตรวจสอบว่า URL ตอบสนองหรือไม่ ตัวอย่างเช่นคุณสามารถใช้สิ่งนี้ในการตรวจสอบสคริปต์และการHEADดำเนินการจะทำให้แน่ใจว่าคุณไม่ได้โหลดใด ๆ ทั้งในเครือข่ายและเว็บเซิร์ฟเวอร์เป้าหมาย
ข้อมูลโบนัส: หาก Wget ได้รับข้อผิดพลาด HTTP 500 จากเซิร์ฟเวอร์เมื่อดำเนินการHEADแล้วจะดำเนินการGETต่อเพื่อดำเนินการกับ URL เดียวกัน ฉันไม่รู้เหตุผลของการออกแบบนี้ นี่คือเหตุผลที่ว่าทำไมคุณอาจจะเห็นทั้งสองHEAD และGETคำขอถูกดำเนินการกับเซิร์ฟเวอร์ หากไม่มีอะไรผิดปกติจะมีการHEADร้องขอเท่านั้น คุณสามารถปิดการใช้งานฟังก์ชั่นนี้ด้วย--triesตัวเลือกเพื่อ จำกัด Wget เพียงหนึ่งครั้ง
สรุปทั้งหมดฉันขอแนะนำให้ทำการทดสอบว่า URL นั้นตอบสนองหรือไม่:
# 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
wget -S รับไฟล์:
ความยาวเนื้อหา: 2316, ความยาว: 2316 (2.3K) [ข้อความ / ธรรมดา], บันทึกเป็น: `index.html '
wget --spider รับส่วนหัว:
เปิดใช้งานโหมดแมงมุม ตรวจสอบว่ามีไฟล์ระยะไกลอยู่หรือไม่, ความยาว: ไม่ระบุ [text / plain] มีไฟล์ระยะไกล
แม้ว่าจะไม่ติดตั้งด้วยโมดูลwgetจำนวนมากจะมีคำสั่งติดตั้งperllwpHEAD