HEAD 요청을 받으시겠습니까?

HEAD 요청을 받으시겠습니까?

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와 반대 ).GETPOST

이는 URL이 응답하는지 여부를 확인하는 아주 최소한의 방법입니다. 예를 들어 이를 스크립트 검사에 사용할 수 있으며 작업을 통해 HEAD네트워크나 대상 웹 서버 모두에 부하를 주지 않도록 할 수 있습니다.

보너스 정보: Wget이 작업을 수행할 때 서버에서 HTTP 오류 500을 받으면 동일한 URL에 대해 HEAD작업을 수행하게 됩니다 . GET이 디자인의 이유를 모르겠습니다. 이것이 두 가지를 모두 볼 수 있는 이유입니다.HEAD 그리고GET서버에 대해 요청이 수행되고 있습니다 . 아무 문제가 없으면 HEAD요청만 수행됩니다. --triesWget을 한 번만 시도하도록 제한하는 옵션을 사용하여 이 기능을 비활성화할 수 있습니다 .

전체적으로 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

우분투 19.10 맨페이지: Wget

   --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/

관련 정보