Theo RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html:mã trạng thái HTTP ĐẦU động từ của
Phương pháp HEAD giống với GET ngoại trừ việc máy chủ PHẢI KHÔNG trả về một thông điệp cơ thể trong phản ứng. Các metainformation chứa trong các tiêu đề HTTP để đáp ứng với một yêu cầu HEAD NÊN được giống hệt với thông tin được gửi để đáp ứng với một yêu cầu GET. Phương pháp này có thể được sử dụng để thu thập thông tin về thực thể được ngụ ý bởi yêu cầu mà không cần chuyển giao thân thực thể. Phương pháp này thường được sử dụng để kiểm tra các liên kết siêu văn bản để có hiệu lực, khả năng truy cập và sửa đổi gần đây.
Phản hồi cho yêu cầu HEAD CÓ THỂ được lưu trữ theo nghĩa là thông tin chứa trong phản hồi CÓ THỂ được sử dụng để cập nhật thực thể được lưu trong bộ nhớ cache trước đó từ tài nguyên đó. Nếu các giá trị trường mới chỉ ra rằng thực thể được lưu trong bộ nhớ cache khác với thực thể hiện tại (như được chỉ ra bởi một thay đổi về Độ dài nội dung, Nội dung-MD5, ETag hoặc Sửa đổi lần cuối), thì bộ nhớ cache PHẢI xử lý mục nhập bộ nhớ cache là cũ.
Từ định nghĩa này, chúng ta phải trả lại 200
chẳng hạn như hành động GET tương ứng, chúng ta có phải trả lại 204
vì không có nội dung không?
Cá nhân, tôi nghĩ cách diễn giải tốt hơn là sử dụng mã trạng thái 204
. Giải thích của bạn là gì?
Dường như đủ rõ ràng: nếu GET của bạn trả về '200', bạn trả lại 200 cho' HEAD'. Nếu 'GET' của bạn sẽ trả lại 204, bạn trả lại 204. Có vấn đề gì? –
Vấn đề là như sau: hành động 'GET' không được trả về' 204' vì nếu một tài nguyên/bộ sưu tập tồn tại, thì nội dung sẽ xuất hiện. Tuy nhiên, với nội dung 'HEAD' phải là rỗng, mã trạng thái sẽ là' 204'. BTW, lưu ý cụm từ _SHOULD_ này từ định nghĩa: _a HEAD request ** NÊN ** giống hệt với thông tin được gửi để phản hồi yêu cầu GET._ Vì vậy, mã trạng thái khác này có thể là sự khác biệt duy nhất giữa 'GET' và' HEAD' tiêu đề. – Doug
Có ý định 204 không phù hợp với tiêu đề 'Không có nội dung'. IMO nó có tiêu đề kém, nhưng tôi nghi ngờ tôi sẽ nghĩ ra một cái gì đó tốt hơn. – aaaaaa