Wget yêu cầu CHÍNH?


52

Tôi muốn gửi HTTP HEADyêu cầu bằng cách sử dụng wget. Có thể không?

Câu trả lời:


59

Nó không phải là wget, nhưng bạn có thể làm điều đó khá dễ dàng bằng cách sử dụng curl.

curl -I http://www.superuser.com/

Sản xuất đầu ra này:

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

Đây chính xác là những gì tôi muốn.
Xiè Jìléi

1
-Itương đương với --head.
Nicolas Marchildon

1
Nếu bạn cần chứng chỉ tự ký dựa trên https, bạn cũng có thể thêm -khoặc--insecure
Mike Aski

36

Thử:

wget -S --spider www.example.com

Bạn cũng có thể vượt qua -O /dev/nullđể ngăn việc wgetviết phản hồi HTTP vào một tệp.


2
-Ssẽ hiển thị các tiêu đề, nhưng nó thực thi a GET, không phải a HEAD. Nói cách khác, nó sẽ lấy toàn bộ URL.
Dan Dascalescu

9
wget -S --spider http://localhostNhật ký được tạo trong máy chủ apache là127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
thường

20

Không có nhu cầu uốn tóc .

Với Wget, việc thêm --spiderhàm ý rằng bạn muốn gửi HEADyêu cầu (trái ngược với GEThoặc POST).

Đây là một cách tối giản tuyệt vời để kiểm tra xem URL có phản hồi hay không. Ví dụ, bạn có thể sử dụng điều này trong kiểm tra theo kịch bản và HEADthao tác sẽ đảm bảo bạn không đặt bất kỳ tải nào lên cả mạng và máy chủ web đích.

Thông tin về phần thưởng: Nếu Wget nhận được lỗi HTTP 500 từ máy chủ khi nó thực hiện thì HEADnó sẽ chuyển sang thực hiện GETđối với cùng một URL. Tôi không biết lý do cho thiết kế này. Đây là lý do tại sao bạn có thể thấy cả một HEAD một GETyêu cầu được thực hiện đối với máy chủ. Nếu không có gì sai thì chỉ có một HEADyêu cầu được thực hiện. Bạn có thể tắt chức năng này với --triestùy chọn giới hạn Wget chỉ một lần thử.

Nói chung, tôi khuyên bạn nên thử nghiệm nếu URL phản hồi:

# 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 lấy tập tin:

Độ dài nội dung: 2316, Độ dài: 2316 (2.3K) [văn bản / thuần túy], Lưu vào: `index.html '

wget --spider được tiêu đề:

Chế độ nhện được kích hoạt. Kiểm tra xem có tồn tại tệp từ xa không., Độ dài: không xác định [text / plain] Tệp từ xa tồn tại.


-1

Mặc dù không wget, nhiều perlcài đặt với lwpmô-đun sẽ có HEADlệnh được cài đặt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.