HTTP HEAD
을 사용하여 요청을 보내고 싶습니다 wget
. 가능합니까?
답변1
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
답변2
노력하다:
wget -S --spider www.example.com
HTTP 응답을 파일에 쓰는 것을 -O /dev/null
방지하기 위해 전달할 수도 있습니다 .wget
답변3
그럴 필요도 없고곱슬 곱슬하다.
Wget에서 추가는 요청 --spider
을 보내고 싶다는 것을 의미합니다 ( 또는 HEAD
와 반대 ).GET
POST
이는 URL이 응답하는지 여부를 확인하는 아주 최소한의 방법입니다. 예를 들어 이를 스크립트 검사에 사용할 수 있으며 작업을 통해 HEAD
네트워크나 대상 웹 서버 모두에 부하를 주지 않도록 할 수 있습니다.
보너스 정보: Wget이 작업을 수행할 때 서버에서 HTTP 오류 500을 받으면 동일한 URL에 대해 HEAD
작업을 수행하게 됩니다 . GET
이 디자인의 이유를 모르겠습니다. 이것이 두 가지를 모두 볼 수 있는 이유입니다.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
답변4
--method=HTTP-Method
For the purpose of RESTful scripting, Wget allows sending of other HTTP Methods
without the need to explicitly set them using --header=Header-Line. Wget will use
whatever string is passed to it after --method as the HTTP Method to the server.
내 bash 스크립트에서 다음을 사용하여 예상대로 작동하는지 확인할 수 있습니다!
wget --method=HEAD https://www.website.com/