2008-10-07 21 views
6

Tengo una plataforma ASP.Net 3.5 y un servidor Windows 2003 con todas las actualizaciones.¿Cuál es el límite óptimo para la longitud de URL? 100, 200+

Hay un límite con .Net que no puede manejar más de 260 characters. Además, si lo buscas en la web, encontrarás que IE 6 no funciona si no está parcheado en más de 100 charcters.

Quiero que el módulo de ruta de reescritura sea compatible con el número máximo de navegadores, por lo que estoy buscando un límite aceptable para poder crear direcciones URL detalladas.

Respuesta

5

Una URL es ruta + querystring, y el artículo vinculado solo habla sobre la limitación de la ruta. Por lo tanto, si usa asp.net, no exceda una ruta de 260 caracteres. Menos de 260 siempre funcionarán, y asp.net no tiene problemas con las cadenas largas.

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

Normalmente, el problema está en el navegador. Hace mucho tiempo hice pruebas y recuerdo que muchos navegadores soportan URL de 4k, a excepción de IE, que lo limita a 2083, así que para todos los propósitos prácticos, limítelo a 2083. No sé si IE7 y 8 tienen la limitación, pero si va a una compatibilidad amplia, debe buscar el mínimo común denominador.

0

Se necesita más información, pero para situaciones normales, yo diría que intente mantenerlo por debajo de 150 con seguridad. Si no fuera por nada más que ascetas puros, odio cuando alguien me envíe un enlace GI-NORMOS ...

¿Está transmitiendo valores a través de la cadena de consulta? Supongo que es por eso que preguntaste, ¿correcto?

2

This article da los límites impuestos por varios navegadores. Parece que IE limita la URL a 2083 caracteres, por lo que probablemente deberías permanecer debajo si alguno de tus usuarios está en IE.

1

Creo que el RFC 4096 dice caracteres, pero IE trunca a 2083 caracteres. Mantente bien por debajo de eso para estar seguro.

Prácticamente, las URL más cortas son más amigables.

2

Defina "óptimo" para su aplicación.

El estándar HTTP tiene un límite (que depende de la aplicación):

El protocolo HTTP no impone ninguna un límite a priori sobre la longitud de un URI. Los servidores DEBEN ser capaces de manejar el URI de cualquier recurso que presten servicios, y DEBERÍA ser capaz de manejar URI de longitud ilimitada si proporcionan formularios basados ​​en GET que podrían generar tales URI. Un servidor DEBE devolver el estado 414 (Request-URI Demasiado) si un URI es más largo que el servidor puede manejar (consulte secció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. 

Así que la pregunta es - ¿cuál es el límite de su programa, o lo que es el tamaño máximo identificador de recursos de su programa necesita para llevar a cabo toda su funcionalidad?

Su programa debe tener un límite natural.

Si no es así, también puede pegarlo como 16k, ya que no tiene suficiente información para definir el problema.

-Adam

0

¿Qué es "optimal"?

Las solicitudes GET pueden tener varios kB de longitud, por lo que esto es completamente subjetivo.

Yo diría que: permanezca dentro de la longitud de la barra de direcciones de una ventana maximizada de 1024x768 para ser fácil de usar.

0

Si intenta que la gente recuerde la URL, no iría más allá de 60. Use palabras si es posible, porque es más fácil recordar "www.example.com/este-es-la-url "que" www.example.com/179264 ". Si intenta indexar la página, probablemente podría ir más. Las arañas también buscan palabras en el título, y es probable que algunas personas hagan clic en el enlace si la URL parece legible.

+0

He oído hablar de esta teoría 'arañas están buscando en la URL' muchas veces, pero sin ninguna prueba. Por lo que probé en un gran sitio web en el que trabajé, no hace diferencia alguna. ¿Cuida proporcionar alguna URL que demuestre que realmente se usa? –

2

corto ;-)

El problema es que cada servidor web y cada navegador tiene sus propias ideas cuánto tiempo el máximo es. El RFC para el protocolo HTTP no da una longitud máxima. IE limita el llegar a 2083 caracteres, la ruta en sí misma puede tener 2.048 caracteres como máximo. Sin embargo, este límite no es universal. Firefox afirma que admite al menos hasta 65.536, sin embargo, algunas personas verificaron que en algunas plataformas funcionan incluso 100.000 caracteres. Safari está por encima de 80,000 (probado). El servidor Apache, por otro lado, tiene un límite de 4.000. Microsofts Internet Information Server tiene uno que es 16,384 (pero es configurable).

Mi recomendación es permanecer debajo de 2,000 caracteres en cualquier caso. No está garantizado que funcione con todos los navegadores del mundo (especialmente los no antiguos), pero funcionará con todos los navegadores modernos. Además, recomiendo usar POST siempre que sea posible (por ejemplo, evitar el uso de GET para envíos de formularios; si algunos usuarios desean simular un envío de formularios a través de GET, asegúrese de que su aplicación admita los parámetros deseados mediante POST o GET, pero cuando envíe la página usted mismo a través de un botón o JS, prefiere POST sobre GET).

0

Cuando dices "Optimum", creo "Fácilmente accesible para los usuarios", en cuyo caso, creo que cuanto más corta sea la URL, mejor. Pensaría 20-30 caracteres máximo, en ese caso.

Cuestiones relacionadas