2009-04-15 46 views

Trả lời

53

Không, nó không quan trọng đối với tiêu đề có tên khác nhau. Xem RFC 2616, phần 4.2:

Thứ tự các trường tiêu đề có tên trường khác nhau là nhận được không đáng kể. Tuy nhiên, "thực hành tốt" trước tiên phải gửi trường tiêu đề chung trước, theo sau là trường tiêu đề yêu cầu hoặc phản hồi- và kết thúc bằng trường tiêu đề thực thể.

là điều quan trọng, tuy nhiên, đối với nhiều tiêu đề có cùng tên:

Nhiều lĩnh vực thông điệp tiêu đề với các trường cùng tên THỂ được hiện diện trong một tin nhắn nếu và chỉ nếu toàn bộ trường-giá trị cho trường tiêu đề được định nghĩa là danh sách được phân tách bằng dấu phẩy [ví dụ, # (giá trị)]. PHẢI có thể kết hợp nhiều trường tiêu đề thành một cặp "tên trường: giá trị trường-giá trị", mà không thay đổi ngữ nghĩa của thông báo , bằng cách thêm mỗi giá trị trường tiếp theo vào giá trị đầu tiên, mỗi cách nhau bởi một dấu phẩy. Do đó, thứ tự các trường tiêu đề có cùng tên trường nhận được quan trọng đối với cách diễn giải giá trị trường kết hợp và do đó proxy KHÔNG PHẢI thay đổi thứ tự của các giá trị trường này khi một thư được chuyển tiếp.

+0

ASP.net sử dụng một NameValueCollection đơn giản để lưu trữ các tiêu đề phản hồi. – David

+1

Đối với nhiều tiêu đề có cùng tên, điều quan trọng là CÒN THÊM THÊM nếu không hợp pháp cho tiêu đề đó xuất hiện nhiều lần, ví dụ: 'Content-Length' - các máy chủ khác nhau sẽ xử lý nó theo một cách khác. Ví dụ. một cái sẽ lấy cái đầu tiên, cái sẽ lấy cái cuối cùng, cái còn lại sẽ được xác định ngẫu nhiên. Vì vậy, trong khi nó làm cho một sự khác biệt, có thể không có nhiều bạn có thể làm gì về nó. – AviD

+0

(Oh dang, chỉ cần chú ý ngày bạn đăng bài này ...!: -O Xin lỗi, tôi vừa mới xảy ra nó ngay bây giờ ...) – AviD

2

Tiêu đề HTTP độc lập với nhau và bạn có thể sử dụng từ điển để lưu trữ chúng mà không phải lo lắng về thứ tự của chúng.

+2

Không đúng cho nhiều lần xảy ra cùng một tiêu đề. – Eddie

6

Thứ tự của tiêu đề không quan trọng. Có thể có các triển khai HTTP "yếu hơn" trong đó thứ tự không quan trọng, nhưng nó không nên nói chung.

Dưới đây là một liên kết mà mô tả tiêu đề HTTP:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

0

Nó có thể cũng quan trọng khi xác định set-cookie nhiều lần cho cùng một cookie:

"Set-Cookie: COOKIE1=VALUE1; ... 
"Set-Cookie: COOKIE1=VALUE2; ... 

Trong trường hợp này, COOKIE1 sẽ được thiết lập đến VALUE2 và nếu đơn đặt hàng được thay đổi:

"Set-Cookie: COOKIE1=VALUE2; ... 
"Set-Cookie: COOKIE1=VALUE1; ... 

COOKIE1 sẽ được đặt thành VALUE1

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