HEAD 요청이 있으십니까?


52

HTTP HEAD사용 하여 요청 을 보내려고합니다 wget. 가능합니까?

답변:


59

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

이것이 바로 내가 원하는 것입니다.
Xiè Jìléi

1
-I와 같습니다 --head.
Nicolas Marchildon

1
자체 서명 된 인증서 기반이 필요한 경우 다음 https을 추가 -k하거나 다음을 수행 할 수도 있습니다.--insecure
Mike Aski

36

시험:

wget -S --spider www.example.com

파일에 HTTP 응답을 쓰지 -O /dev/null못하도록 전달할 수도 wget있습니다.


2
-S헤더 를 표시 하지만 a GET가 아닌 a를 실행 합니다 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)"
Casual Coder

20

curl 필요가 없습니다 .

를 Wget으로 추가하는 것은 --spider당신이 보낼 것을 의미한다 HEAD(반대로 요청을 GET하거나 POST).

이것은 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

wget -S 파일을 얻는다 :

콘텐츠 길이 : 2316, 길이 : 2316 (2.3K) [text / plain], 저장 위치 :`index.html '

wget --spider 헤더를 가져옵니다.

스파이더 모드가 활성화되었습니다. 원격 파일이 있는지 확인하십시오., 길이 : 지정되지 않음 [text / plain] 원격 파일이 있습니다.


-1

아니지만 모듈을 사용한 wget많은 perl설치 lwp에는 HEAD명령이 설치됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.