ฉันต้องการที่จะส่งคำขอใช้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
จำนวนมากจะมีคำสั่งติดตั้งperl
lwp
HEAD