2013-11-01 29 views
5

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ì?

+0

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ì? –

+1

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

+0

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

Trả lời

7

Xem Section 10, mô tả mã trạng thái. Mô tả mã 200 bao gồm các ví dụ và chúng bao gồm HEAD. Vì vậy, rõ ràng là họ có ý định rằng yêu cầu HEAD phải trả lại mã này.

Các mô tả về 204 giải thích mục đích:

phản ứng này chủ yếu nhằm cho phép đầu vào cho các hoạt động sẽ diễn ra mà không gây ra một sự thay đổi để xem tài liệu hoạt động các đại lý người dùng, mặc dù bất kỳ metainformation mới hoặc cập nhật NÊN được áp dụng cho tài liệu hiện có trong chế độ xem đang kích hoạt của tác nhân người dùng.

+0

Sai lầm của tôi ... Cảm ơn câu trả lời. – Doug

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