5

Tôi hiện đang cố gắng hiểu chính xác 304/Không được sửa đổi đủ điều kiện cho loại mã trạng thái HTTP 3xx. RFC 1945, sec. 9.3RFC 2616, sec. 10.3 cả hai đều đọc:Tại sao mã trạng thái 304 được tính là "chuyển hướng?"

Loại trạng thái này chỉ ra rằng hành động cần được thực hiện bởi tác nhân người dùng để thực hiện yêu cầu.

Trong khi "tải từ bộ nhớ cache cục bộ của khách hàng" rõ ràng là "hành động tiếp theo", tôi đang đấu tranh để xem đây là chuyển hướng theo nghĩa HTTP. Tôi có đọc nó theo nghĩa đen không?

Trả lời

7

Xem http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-26.html#rfc.section.6.4.p.2:

Có một số loại chuyển hướng:

  1. Các chuyển hướng chỉ ra nguồn lực có thể có sẵn tại một URI khác nhau, theo quy định của trường Location, như trong mã trạng thái 301 (Đã chuyển vĩnh viễn), 302 (Đã tìm thấy) và 307 (Chuyển hướng tạm thời).

  2. Chuyển hướng cung cấp lựa chọn tài nguyên phù hợp, mỗi tài nguyên có thể đại diện cho mục tiêu yêu cầu ban đầu, như trong mã trạng thái 300 (Nhiều lựa chọn).

  3. Chuyển hướng đến một tài nguyên khác, được xác định bởi trường Vị trí, có thể biểu thị phản hồi gián tiếp cho yêu cầu, như trong mã trạng thái 303 (Xem Khác).

  4. Chuyển hướng thành kết quả được lưu trong bộ nhớ cache trước đó, như trong mã trạng thái 304 (Không được sửa đổi).

+0

Cảm ơn bạn đã liên kết. Thật thú vị khi thấy rằng 304 được liệt kê trong một phần hoàn toàn khác. Vậy ngữ nghĩa thực sự là "chuyển hướng tới bản sao được lưu trong bộ nhớ cache cục bộ?" Nếu không, tôi thực sự không biết tại sao "Không được sửa đổi" không thể là mã 2xx như 201/Created (cũng có thể chuyển hướng) hoặc 204/Không có nội dung. Xét cho cùng, yêu cầu * đã * thành công. – DaSourcerer

+0

Có, tiêu đề "If-Modified-Since" thông báo rõ ràng cho máy chủ "Tôi biết tài nguyên này tồn tại và tôi biết cách thể hiện nó, đã sửa đổi từ lần cuối tôi biết không?" - Máy chủ sẽ trả lời bằng "304 Không được sửa đổi" hoặc mã thích hợp hơn, chẳng hạn như "200 Ok" (phiên bản mới của nội dung) hoặc "404 Không tìm thấy" hoặc bất kỳ điều gì khác phù hợp cho thời điểm này. – AnrDaemon

2

Tôi tưởng tượng vì máy chủ đang "chuyển hướng" máy khách tải tài nguyên được yêu cầu từ bộ đệm cục bộ thay vì tải xuống từ máy chủ. Nếu khách hàng không có bản sao lưu cục bộ thì không nên gửi yêu cầu có điều kiện ngay từ đầu.

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