답변:
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
파일에 HTTP 응답을 쓰지 -O /dev/null
못하도록 전달할 수도 wget
있습니다.
-S
헤더 를 표시 하지만 a GET
가 아닌 a를 실행 합니다 HEAD
. 즉, 전체 URL을 가져옵니다.
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)"
curl 필요가 없습니다 .
를 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
wget -S
파일을 얻는다 :
콘텐츠 길이 : 2316, 길이 : 2316 (2.3K) [text / plain], 저장 위치 :`index.html '
wget --spider
헤더를 가져옵니다.
스파이더 모드가 활성화되었습니다. 원격 파일이 있는지 확인하십시오., 길이 : 지정되지 않음 [text / plain] 원격 파일이 있습니다.