2009-06-02 34 views
11

Nói cách khác, tôi có sử dụng http://www.example.com/ hoặc http://wwW.exAmPLe.COm/ không?Trường hợp tên máy chủ HTTP (trên/dưới) có quan trọng không?

Gần đây tôi đã gặp sự cố lạ với tên máy chủ: Tôi có máy chủ web Apache2.2 + PHP5.1.4, được truy cập bởi tất cả các loại trình duyệt. người sử dụng IE6 nói riêng (đặc biệt. khi chuỗi UA của họ là gánh nặng với nhiều BHOs, không có mô hình nào) dường như có vấn đề truy cập vào trang web (cookie biến mất, JS từ chối để tải) khi nhập qua http://www.Example.com/, nhưng không http://www.example.com/

tôi đã kiểm tra các số HTTPDNS RFC, số P3P policies, cài đặt cookie và SOP; nhưng không nơi nào tôi đã nhìn thấy ngay cả một đề cập đến các tên miền được phân biệt chữ hoa chữ thường.

(Tôi biết đường dẫn và chuỗi truy vấn là trường hợp nhạy cảm (?x=foo là khác nhau từ ?x=Foo) và đối xử với họ một cách thích hợp; đang làm không có phân tích/xử lý trên tên miền trong mã của tôi)

Tôi có làm gì sai hay là điều này chỉ là một số trình duyệt + thanh công cụ crap tôi nên làm việc xung quanh?

Trả lời

24

Tên miền là không phân biệt chữ hoa chữ thường; Example.com sẽ phân giải tới cùng một IP là eXaMpLe.CoM. Nếu máy chủ web hoặc trình duyệt xử lý tiêu đề Host là phân biệt chữ hoa chữ thường, đó là lỗi.

+2

Bạn nói đúng - một trong những tập lệnh lưu trong bộ nhớ cache đã so sánh tên miền phân biệt chữ hoa chữ thường và đang gây ra sự cố. Buộc tên máy chủ thành chữ thường dường như sửa nó. – Piskvor

+5

Sau đó, tập lệnh này bị hỏng và phải được sửa. – bortzmeyer

0

Không, không có trường hợp nhạy cảm liên quan đến thông số giao thức.

You can see this in the RFC for URLs.

2.1. Các phần chính của URL

Tên sơ đồ bao gồm một chuỗi gồm ký tự. Chữ cái viết thường là "a" - "z", chữ số và các ký tự cộng ("+"), dấu chấm (".") Và dấu gạch ngang ("-") được cho phép. Để có khả năng phục hồi, các chương trình diễn giải URL nên xử lý các chữ cái viết hoa tương đương để viết hoa chữ thường trong tên lược đồ (ví dụ: cho phép "HTTP" cũng như "http").

+1

Tại sao mọi người tiếp tục trích dẫn thông số kỹ thuật lỗi thời? Thở dài! –

5

Không, điều này không tạo nên bất kỳ sự khác biệt nào.

Kiểm tra URL RFC Spec (http://www.ietf.org/rfc/rfc1738.txt). Từ phần 2.1:

Đối với khả năng phục hồi, các chương trình giải thích URL nên đối xử với chữ cái viết hoa như tương đương với chữ thường trong chương trình tên

+1

+1 để tham khảo :) – cgp

+5

Chúng tôi đã không thảo luận về tên lược đồ. (Ngoài ra: RFC 1738 là cổ đại, và đã được cập nhật nhiều lần kể từ đó, RFC hiện tại là 3986). –

+0

Theo thông số được liệt kê ở trên ([http://www.ietf.org/rfc/rfc3986.txt][1]). Từ Trang 18: > Mặc dù chủ là case-insensitive, nhà sản xuất và normalizers > nên sử dụng chữ thường cho tên đăng ký và hệ thập lục phân > địa chỉ vì lợi ích của tính thống nhất, trong khi chỉ sử dụng chữ hoa > chữ cho phần trăm-mã hóa. [1]: http://www.ietf.org/rfc/rfc3986.txt – geedew

1

Theo http://tools.ietf.org/html/rfc1035:

Đối với tất cả các phần của DNS là một phần của giao thức chính thức, tất cả so sánh giữa các chuỗi ký tự (ví dụ: nhãn, tên miền, v.v.) được thực hiện theo cách phân biệt chữ hoa chữ thường. Hiện tại, quy tắc này là trong lực lượng trong toàn bộ hệ thống tên miền mà không có ngoại lệ.

Sau đó, tiếp tục nói rằng điều này có thể thay đổi trong tương lai. Tôi nghĩ rằng nó là an toàn để giả định rằng tên miền COM là không phân biệt dạng chữ, nhưng các miền khác cho phép sử dụng các ký tự không phải ASCII có thể khác nhau.

+0

.COM cũng chấp nhận IDN ... Và IDN không thay đổi gì cả khi tên miền không phân biệt chữ hoa chữ thường CAFÉ.com giống nhau. – bortzmeyer

4

Vì bạn đã đặt câu hỏi của mình như một câu hỏi thực tế, và sau đó mô tả một vấn đề thực tế, câu trả lời thực sự là: CÓ.

Các câu trả lời khác là chính xác về những gì thông số RFC nói về tên máy chủ. Về mặt kỹ thuật, chúng nên phân biệt chữ hoa chữ thường. (Trên thực tế, quy ước cũ hơn là tên miền cấp cao nhất (TLD) được cho là nằm trong tất cả các mũ ... như "apple.COM").

Tuy nhiên, trong thế giới thực, phần mềm trưởng thành như trình phân giải hệ điều hành và trình duyệt chính có được quyền này. Bất kỳ loại mã phụ có thể được xử lý sai, và rối tung bạn lên.

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