2009-10-01 46 views
7

Trang web công cụ ứng dụng google của tôi đang gặp lỗi trên url chính cho các yêu cầu HEAD vì tôi không chấp nhận chúng. Theo số this, yêu cầu HEAD là dành cho "testing hypertext links for validity, accessibility, and recent modification"Khi nào tôi nên phản hồi các yêu cầu HEAD HTTP trên trang web của mình

Phản hồi "bình thường" của tôi đối với yêu cầu HEAD là gì?

Tôi bắt đầu chấp nhận yêu cầu HEAD, để ngăn lỗi hiển thị trong nhật ký của tôi, nhưng chỉ trên url chính.

Ai đó có thể chỉ cho tôi đúng hướng không?

Trả lời

7

Triển khai phương thức head giống như get một (s), chỉ cần bỏ qua phần viết của phần thân. Bạn nên làm điều đó cho mỗi URL có thể được liên kết với, chính xác bởi vì một kiểm tra tốt cư xử đó là xác nhận các liên kết nên sử dụng HEAD khi nó không cần cơ thể.

đơn giản nhất thường là yếu tố ra các chức năng get đến một phương pháp phụ trợ riêng _foo mà phải mất một boolean needbody luận - get gọi self._foo(True), head cuộc gọi self._foo(False). _foo, nếu nó thấy đối số needbody của nó là sai, có thể bảo lãnh ngay sau khi nó đã tạo tất cả tiêu đề (và phải đảm bảo rằng nó không tạo ra nội dung).

+5

Một tùy chọn khác, trong webapp, là định nghĩa một lớp cơ sở thực hiện đầu bằng cách gọi self.get rồi xóa cơ thể. Điều này là không hiệu quả, tất nhiên, nhưng cho phép bạn ghi đè lên nó hiệu quả hơn trên cơ sở từng trường hợp cụ thể. –

+0

@Nick Cách tốt nhất để xóa cơ thể là gì? –

+1

@Bryce 'self.response.clear()'. –

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