2012-07-12 24 views
6

Mục 19,3 "Applications chịu" của HTTP 1.1 RFC (2616) nói về chủ đề ngày phân tích từ các ứng dụng HTTP client:Chuyển đổi 'bảo thủ nhất' sang GMT?

Nếu một HTTP header sai mang một giá trị ngày tháng với một múi giờ khác ngoài giờ , nó PHẢI được chuyển đổi thành GMT bằng cách sử dụng chuyển đổi bảo thủ nhất có thể.

Hai câu hỏi:

  1. Điều này có nghĩa là máy chủ PHẢI chuyển đổi một giờ không có giá trị ngày lấy múi giờ GMT? Hay nó có nghĩa là nếu (tùy chọn) nó chọn chuyển đổi một giá trị ngày không GMT thành GMT (thay vì từ chối nó) thì nó PHẢI sử dụng chuyển đổi bảo thủ nhất có thể?

  2. Điều gì có nghĩa là "chuyển đổi có thể bảo thủ nhất"?

Sửa Mặc dù điều này bây giờ là một câu hỏi cũ, tôi vẫn muốn biết câu trả lời nếu có ai có nó.

+0

Hmm, bạn có phải là tác giả của [ietf trac ticket] (http://trac.tools.ietf.org/wg/httpbis/trac/ticket/375) về nó không? –

+0

Không, tôi không có. Tôi muốn biết vì tôi đã viết một máy chủ HTTP. –

+0

Ah, sau đó tôi vừa cung cấp cho bạn một liên kết đến trac ticket về nó;). –

Trả lời

5

Điều này có nghĩa là máy chủ PHẢI chuyển đổi giá trị ngày không phải GMT thành GMT? Hay nó có nghĩa là nếu (tùy chọn) nó chọn chuyển đổi một giá trị ngày không phải GMT sang GMT (thay vì từ chối nó) thì nó PHẢI sử dụng chuyển đổi bảo thủ nhất có thể?

Đây thực sự là điều gì đó cụ thể hơn cho lĩnh vực được đề cập hơn là nội dung được áp dụng chung. Có một working group draft that would obselete RFC 2616 có này để nói về chuyển đổi trong cache:

  • HTTP/1.1 khách hàng và lưu trữ NÊN giả định rằng một RFC-850 ngày mà dường như là hơn 50 năm trong tương lai là trên thực tế trong quá khứ (điều này giúp giải quyết vấn đề "năm 2000").
  • Mặc dù tất cả các định dạng ngày được chỉ định là phân biệt chữ hoa chữ thường, người nhận NÊN khớp với tên ngày, tuần và múi giờ không phân biệt chữ hoa chữ thường.
  • Triển khai HTTP/1.1 CÓ THỂ đại diện cho ngày hết hạn được phân tích cú pháp sớm hơn giá trị thích hợp, nhưng KHÔNG PHẢI thể hiện ngày hết hạn được phân tích cú pháp muộn hơn giá trị thích hợp.
  • Tất cả các phép tính liên quan đến hết hạn phải được thực hiện trong GMT. Múi giờ địa phương KHÔNG PHẢI ảnh hưởng đến việc tính toán hoặc so sánh tuổi tác hoặc thời gian hết hạn.
  • Bộ nhớ NÊN nên xem xét các ngày có múi giờ không phải là "GMT" không hợp lệ.

Điều gì có nghĩa là "chuyển đổi có thể bảo thủ nhất"?

Trong ngữ cảnh này, dường như không có ý nghĩa gì ngoài việc phải đối mặt với 2 kết quả, chọn ngày "bảo thủ" nhất dựa trên ngữ cảnh của ngày.

Cho 2 ngày được phân tích cú pháp mờ, trong ngữ cảnh của tiêu đề Last-modified, bảo thủ nhất sẽ là "sau". Nhưng trong ngữ cảnh của tiêu đề Expires, phần đầu của 2 trở nên thận trọng hơn.Bất cứ điều gì đòi hỏi một số lượng đáng kể của đoán nên chỉ trả lại một phản ứng lỗi.