HTTP 000 có nghĩa gì khi kiểm tra proxy bằng curl?
000 không phải trạng thái HTTP do website gửi về. Hãy đọc mã thoát và lỗi của curl cùng với trường HTTP được in ra.
Khi một lần kiểm tra bằng curl in 000 ở phần trạng thái HTTP, curl chưa nhận được mã phản hồi HTTP cuối cùng để báo cáo. Website không hề gửi một trạng thái HTTP thực sự có tên 000.
Ghi lại cả lỗi
Ví dụ dành cho shell POSIX này in trường HTTP cuối cùng, trường CONNECT và mã thoát của tiến trình curl:
curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect}\n' https://example.com/
result=$?
printf 'curl_exit=%s\n' "$result"
Thay điểm kết nối trong ví dụ bằng proxy HTTP của bạn hoặc một ứng viên trong danh sách proxy HTTP. Giữ show-error bật: thông báo lỗi thường là phần hữu ích nhất. Trường CONNECT có ý nghĩa khi dùng đường hầm; đây không phải trạng thái cuối cùng thứ hai từ website.
Đọc kết hợp các giá trị
- Kết nối tới proxy thất bại có thể khiến trường HTTP vẫn là 000.
- Hết thời gian chờ trước khi nhận phản hồi cũng có thể cho kết quả tương tự.
- Phản hồi CONNECT thành công rồi xảy ra lỗi TLS có thể cho connect=200 và http=000.
- Một phản hồi hoàn chỉnh từ website, chẳng hạn 403, là trường hợp khác: có phản hồi HTTP thực sự để xem xét.
Mã thoát chính xác và thông báo giúp khoanh vùng nguyên nhân. Kiểm tra xem lỗi xảy ra khi tìm proxy, kết nối tới cổng của nó, thương lượng đường hầm hay xác minh đích.
Đừng rút mọi kết quả về việc chỉ kiểm tra trạng thái
Script chỉ lưu http_code sẽ bỏ mất lỗi truyền tải. Hãy lưu cả kết quả tiến trình và thông báo lỗi đã loại bỏ thông tin nhạy cảm. Ngược lại, curl có thể hoàn tất truyền dữ liệu thành công dù website trả về trạng thái lỗi, trừ khi bạn dùng tùy chọn fail phù hợp. Phản hồi HTTP và kết quả thực thi của máy khách trả lời những câu hỏi khác nhau.
Đừng cố sửa 000 bằng cách tắt xác minh TLS hoặc thêm một header ngẫu nhiên. Trước tiên, hãy xác định thao tác nào chưa bao giờ đi tới phản hồi cuối cùng.