13

Đôi khi (khi tài nguyên được yêu cầu quá thường xuyên), tôi đang chặn hiển thị tài nguyên (HTML) bằng hình ảnh xác thực. Việc chặn không tạo ra bất kỳ chuyển hướng nào. Nó xảy ra tất cả ở cùng một URI.Mã trạng thái HTTP cho hình ảnh xác thực

Tôi đang tự hỏi bây giờ mà mã trạng thái HTTP sẽ phù hợp nhất đối với các yêu cầu:

  • nó phải phù hợp với ngữ nghĩa.

  • Google nên hiểu rằng việc chặn này là điều kiện tạm thời không ảnh hưởng đến tài nguyên hiện có trong chỉ mục của nó.

  • Trình duyệt web sẽ hiển thị phần thân phản hồi bằng hình ảnh xác thực.

Đây là những ứng cử viên của tôi mà tôi xác định cho đến nay:

409 Conflict

Yêu cầu không thể hoàn tất do mâu thuẫn với tình trạng hiện thời của tài nguyên. Mã này chỉ được cho phép trong các tình huống mà người dùng có thể có khả năng giải quyết xung đột và gửi lại yêu cầu. Cơ quan phản hồi NÊN bao gồm đủ thông tin để người dùng nhận ra nguồn gốc của xung đột.

Điều này nghe có vẻ hoàn hảo. Trạng thái xung đột xuất phát từ những khách hàng yêu cầu tài nguyên quá thường xuyên. Phản hồi cũng bao gồm đủ thông tin để xác định nguồn xung đột cộng với giải quyết nó.

503 Service Unavailable

Các máy chủ hiện nay không thể để xử lý các yêu cầu do quá tải tạm thời [...] của máy chủ. Hàm ý là đây là tình trạng tạm thời […]. Nếu biết, độ dài của sự chậm trễ CÓ THỂ được chỉ ra trong một tiêu đề Retry-After.

Điều này nghe có vẻ vừa phải. Tôi thậm chí có thể biết độ dài của sự chậm trễ và cung cấp tiêu đề như vậy. Nhưng tôi đang thiếu ở đây điểm mà người dùng có thể giải quyết vấn đề. Hơn nữa phạm vi quá rộng (máy chủ bị quá tải so với tài nguyên quá tải).

Trả lời

7

Bạn có thể muốn xem xét mã trạng thái 429, được xác định trong http://tools.ietf.org/html/rfc6585#section-4.

+0

Tôi đã nghĩ rằng 401 sẽ là một phản ứng phù hợp. Captcha là một hình thức xác thực với mục đích xác thực nhân loại của bộ điều khiển của tác nhân người dùng. Tôi đang xem xét những gì cần cung cấp trong tiêu đề WWW-Authenticate, nhưng tôi sẽ bắt đầu với WWW-Authenticate: X-Captcha – John

+0

Vâng, 401 ngụ ý sự hiện diện của một lược đồ xác thực được xác định. Đừng tạo ra một kế hoạch chỉ để có thể sử dụng 401. –

+1

RFC yêu cầu phải có một thách thức, nhưng nó không yêu cầu tất cả các tác nhân người dùng hiểu được thử thách. Ví dụ này là một thách thức đối với một chương trình không có trong các tiêu chuẩn, do đó dẫn tôi tin rằng nếu ứng dụng có thể sử dụng lược đồ, thì việc giới thiệu nó là hợp lý. Khi tôi đọc thông số cho 429, có vẻ như khách hàng phải dừng yêu cầu. Đó không phải là hành vi mong muốn: chúng tôi muốn khách hàng gửi lại yêu cầu sau khi xác thực. Youtube sử dụng 402 khi có quá nhiều yêu cầu, nhưng trạng thái đó hiện được dành riêng để sử dụng trong tương lai. – John

Các vấn đề liên quan