2012-10-28 23 views
35

Đặc điểm kỹ thuật đầy đủ của X-Forwarded-Proto giá trị tiêu đề HTTP là gì?Đặc tả đầy đủ của tiêu đề HTTP X-Forwarded-Proto là gì?

+0

Related: [Tiêu đề HTTP tùy chỉnh: quy ước đặt tên] (http://stackoverflow.com/questions/3561381/custom-http-headers-naming-conventions) – BalusC

+0

* 'Đã chuyển tiếp: cho = 192.0.2.60; proto = http; bởi = 203.0.113.43' * ....... RFC 7239, hãy xem https://en.wikipedia.org/wiki/X-Forwarded-For – Pacerier

Trả lời

29

Không có "đặc điểm kỹ thuật đầy đủ" - đó là tiêu chuẩn thực tế. X- ở phía trước tên tiêu đề tùy chỉnh * đã biểu thị nó là thử nghiệm/không chuẩn/nhà cung cấp cụ thể. Khi nó là một phần tiêu chuẩn của HTTP, nó sẽ mất tiền tố.

Có một số công việc từ IETF về tiêu chuẩn hóa nó, nhưng nó chỉ ở giai đoạn dự thảo, theo như tôi có thể nói. Hãy xem http://tools.ietf.org/html/draft-ietf-appsawg-http-forwarded-10 để biết bản nháp mới nhất kể từ thời điểm viết bài này. Nhưng hãy lưu ý rằng nó có thể thay đổi bất cứ lúc nào trong khi nó đang được xác thịt, và không dựa vào nó trong công cụ sản xuất nào được nêu ra.

Cập nhật:

RFC 7239 tại xác định Forwarded: tiêu đề, mà được thiết kế để thay thế X-Forwarded-*. Nếu bạn quan tâm đến các tiêu chuẩn, tôi khuyên bạn nên sử dụng tiêu chuẩn đó.


* Đây từng là một điều chính thức, nhưng không còn nữa. RFC 6648 không chấp nhận quy ước tiền tố X-. Thật không may, quy ước này được biết đến rộng rãi (và sự phản đối quá thấp) mà hầu hết mọi người bên ngoài IETF có lẽ sẽ bỏ qua khuyến nghị.

+2

Điều đó gây hiểu lầm. Tiền tố "X-" không phải là đặc biệt trong các trường tiêu đề HTTP. Bản nháp Internet mà bạn đã đề cập định nghĩa trường tiêu đề * mới * có tên "Chuyển tiếp", có nghĩa là thay thế các trường tiêu đề "X-Chuyển tiếp- *" được tìm thấy trong tự nhiên. Ngoài ra, nó đã được phê duyệt để xuất bản, vì vậy tôi sẽ không mong đợi thêm bất kỳ thay đổi nào nữa. –

+2

Nó đã được xuất bản dưới dạng Bản nháp trên Internet. Theo định nghĩa, và như đã nêu trong phần mở đầu của chính nó, nó chỉ nên được coi là "công việc đang tiến hành". Dựa vào nó theo nguy hiểm của riêng bạn; nó đã * đã * thay đổi, 13 lần cho đến nay. Mỗi thay đổi được xuất bản giống nhau. Và nói những gì bạn thích về "X-", nhưng nó * là * một quy ước đã biết và đã được khá lâu rồi. Một RFC không bỏ qua hơn 15 năm lịch sử, nhiều như IETF có thể mong muốn nó đã làm.:) – cHao

+1

cHao xem https://datatracker.ietf.org/doc/draft-ietf-appsawg-http-forwarded/ cho trạng thái dự thảo - vì vậy bản nháp đã được IESG phê duyệt và không được phép thay đổi nữa ngoại trừ các bản sửa lỗi biên tập và định dạng lại. Nếu bạn muốn nitpick, tôi đề nghị bạn tham khảo tài liệu quy trình tiêu chuẩn IETF. –

2

Tôi không biết về "đặc điểm kỹ thuật đầy đủ".

Nhóm làm việc IETF APPSArea gần đây đã quyết định xác định trường tiêu đề mới "Chuyển tiếp" được cho là thay thế trường tiêu đề "X-Chuyển tiếp- *" mà bạn đã đề cập.

Xem http://tools.ietf.org/html/draft-ietf-appsawg-http-forwarded để biết chi tiết.

11

Cuối cùng là RFC 7239 - Forwarded HTTP Extension từ tháng 6 năm 2014. Tiêu đề được xác định trong phần 5.4.

Một số ví dụ:

Forwarded: proto=https 
Forwarded: for=1.2.3.4;proto=http 

Tôi chỉ hy vọng điều này sẽ không mất quá nhiều thời gian để có được chấp nhận rộng rãi. Một ví dụ về sự đa dạng của các tiêu đề vì thiếu tiêu chuẩn có thể được nhìn thấy trong question này.

+1

Điều đó sẽ mất nhiều thời gian trước khi được chấp nhận. Có rất nhiều máy chủ cần cập nhật để phân tích cú pháp tiêu đề HTTP mới. Tôi không thực sự quan tâm đến việc cập nhật thư viện, khung công tác, máy chủ ... v.v. – CMCDragonkai

+0

Tiêu chuẩn "" là thứ được sử dụng phổ biến và được truyền cho những người mới, chứ không phải là điều được người khôn ngoan chọn lọc. Theo định nghĩa như vậy, X-Forwarded-Proto là tiêu chuẩn và RFC7239 chỉ là tiếng ồn. – kubanczyk

+0

Tôi có xu hướng đồng ý, "không ai" sử dụng "Chuyển tiếp:" nó là một tiêu chuẩn mới mà không ai biết và mọi người vẫn đang sử dụng 'X-Forwarded- *'. Tôi tình cờ gặp RFC 7239. Bây giờ nó là một rfc nó sẽ được thông qua, nhưng tiêu chuẩn mới thậm chí còn phức tạp hơn việc thiết lập nhiều tiêu đề. HA-Proxy có định nghĩa tiêu chuẩn bây giờ không? Tất cả điều này là những điều phức tạp. Bây giờ bạn phải hỗ trợ tiêu chuẩn không chuẩn và tiêu chuẩn mới. –

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