2008-10-07 39 views
6

Tôi có một nền tảng ASP.Net 3.5 và máy chủ Windows 2003 với tất cả các bản cập nhật.Giới hạn tối ưu cho độ dài URL là bao nhiêu? 100, 200+

Có giới hạn với. Net không thể xử lý nhiều hơn 260 characters. Hơn nữa nếu bạn nhìn nó trên web, bạn sẽ thấy rằng IE 6 không hoạt động nếu nó không được vá ở trên 100 charcters.

Tôi muốn có mô-đun đường dẫn viết lại được hỗ trợ trên số lượng trình duyệt tối đa, vì vậy tôi đang tìm giới hạn có thể chấp nhận được để tôi có thể tạo URL dài.

Trả lời

5

Url là đường dẫn + chuỗi truy vấn và bài viết được liên kết chỉ nói về giới hạn đường dẫn. Vì vậy, nếu bạn đang sử dụng asp.net, không vượt quá một con đường 260 ký tự. Ít hơn 260 sẽ luôn luôn làm việc, và asp.net không có rắc rối với querystrings dài.

http://somewhere.com/directory/filename.aspx?id=1234 
              ^^^^^^^- querystring 
        ^^^^^^^^^^^^^^^^^^^^^^^^ -------- path 

Thông thường vấn đề là với trình duyệt. Cách đây rất lâu tôi đã thử nghiệm và nhớ lại rằng nhiều trình duyệt hỗ trợ 4k url, ngoại trừ IE giới hạn nó đến năm 2083, vì vậy cho tất cả các mục đích thực tế, giới hạn nó đến năm 2083. Tôi không biết liệu IE7 và 8 có giới hạn hay không, nhưng nếu bạn đang đi đến khả năng tương thích rộng, bạn cần phải đi cho mẫu số chung thấp nhất.

0

Cần thêm thông tin nhưng đối với các trường hợp bình thường, tôi có thể nói cố gắng giữ nó dưới 150 để đảm bảo. Nếu không có gì khác ngoài khổ hạnh thuần túy, tôi ghét khi ai đó gửi cho tôi liên kết GI-NORMOUS ...

Bạn có truyền các giá trị thông qua chuỗi truy vấn không? Tôi cho rằng đó là lý do tại sao bạn hỏi, đúng không?

2

This article giới hạn các trình duyệt khác nhau. Dường như IE giới hạn URL đến 2083 ký tự, vì vậy bạn có thể nên ở dưới đó nếu bất kỳ người dùng nào của bạn đang sử dụng IE.

1

Tôi nghĩ rằng RFC nói 4096 ký tự nhưng IE truncates xuống 2083 ký tự. Ở lại dưới đó để được an toàn.

Thực tế, các URL ngắn hơn thân thiện hơn.

2

Xác định "tối ưu" cho ứng dụng của bạn.

Tiêu chuẩn HTTP có một giới hạn (nó phụ thuộc vào ứng dụng của bạn):

Giao thức HTTP không đặt bất kỳ một giới hạn tiên vào độ dài của một URI. Máy chủ PHẢI có thể xử lý URI của bất kỳ tài nguyên nào mà chúng phục vụ và NÊN có thể xử lý URI có độ dài không bị chặn nếu chúng cung cấp các biểu mẫu GET . Máy chủ NÊN trả lại trạng thái 414 (Yêu cầu-URI Quá dài) nếu URI dài hơn so với máy chủ có thể xử lý (xem phần 10.4.15).

Note: Servers ought to be cautious about depending on URI 
    lengths above 255 bytes, because some older client or proxy 
    implementations might not properly support these lengths. 

Vì vậy, câu hỏi là - giới hạn của chương trình của bạn là gì, hoặc kích thước định danh tài nguyên tối đa chương trình của bạn cần phải thực hiện tất cả các chức năng của nó là gì?

Chương trình của bạn phải có giới hạn tự nhiên.

Nếu không, bạn cũng có thể dán nó là 16k, vì bạn không có đủ thông tin để xác định sự cố.

-Adam

0

"tối ưu" là gì?

Yêu cầu GET có thể dài vài kB, vì vậy điều này hoàn toàn chủ quan.

Tôi muốn nói - ở trong độ dài thanh địa chỉ của cửa sổ tối đa 1024x768 để thân thiện với người dùng.

0

Nếu bạn đang cố gắng để mọi người nhớ URL, tôi sẽ không đi quá 60. Sử dụng các từ nếu có thể, bởi vì dễ nhớ hơn "www.example.com/this-is-the-url "than" www.example.com/179264 ". Nếu bạn đang cố gắng để có được các trang được lập chỉ mục, có thể bạn có thể đi nhiều hơn. Nhện cũng tìm kiếm các từ trong tiêu đề và một số người có thể có nhiều khả năng nhấp vào liên kết hơn nếu URL có thể đọc được.

+0

Tôi đã nghe nói về điều này 'nhện đang tìm kiếm trong lý thuyết URL' quá nhiều lần, nhưng không có bất kỳ bằng chứng nào. Đối với những gì tôi đã thử nghiệm trên một trang web lớn tôi đã làm việc tại, nó làm cho không có sự khác biệt nào. Chăm sóc để cung cấp một số URL có thể chứng minh rằng nó thực sự được sử dụng? –

2

Ngắn ;-)

Vấn đề là mọi máy chủ web và mọi trình duyệt đều có ý tưởng riêng về thời gian tối đa. RFC cho giao thức HTTP không có độ dài tối đa. IE giới hạn việc nhận được 2083 ký tự, con đường chính nó có thể có tối đa 2.048 ký tự. Tuy nhiên, giới hạn này không phải là phổ quát. Firefox tuyên bố hỗ trợ ít nhất lên đến 65.536, tuy nhiên một số người xác minh rằng trên một số nền tảng thậm chí 100.000 nhân vật làm việc. Safari là trên 80.000 (thử nghiệm). Mặt khác, máy chủ Apache có giới hạn là 4.000. Microsofts Internet Information Server có một là 16.384 (nhưng nó có thể cấu hình được).

Đề xuất của tôi là ở dưới 2'000 ký tự trong mọi trường hợp. Điều này không được đảm bảo để làm việc với mọi trình duyệt trên thế giới (đặc biệt là các trình duyệt cũ), nhưng nó sẽ hoạt động với tất cả các trình duyệt hiện đại. Hơn nữa, tôi khuyên bạn nên sử dụng POST bất cứ khi nào có thể (ví dụ: tránh sử dụng GET để gửi FORM - nếu một số người dùng muốn mô phỏng gửi FORM qua GET, hãy đảm bảo ứng dụng của bạn hỗ trợ các thông số mong muốn qua POST hoặc qua GET, nhưng khi bạn gửi trang thông qua một nút hoặc JS, thích POST hơn GET).

0

Khi bạn nói "Tối ưu", tôi nghĩ "Dễ dàng truy cập với người dùng", trong trường hợp này, tôi nghĩ URL càng ngắn càng tốt. Tôi sẽ nghĩ rằng tối đa 20-30 ký tự, trong trường hợp đó.

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