Longitud máxima de la solicitud HTTP GET

Resuelto Mark Harrison asked hace 14 años • 7 respuestas

¿ Cuál es la longitud máxima de una solicitud HTTP GET ?

¿Hay un error de respuesta definido que el servidor puede/debe devolver si recibe una solicitud GET que excede esta longitud?

Esto es en el contexto de una API de servicio web, aunque también es interesante ver los límites del navegador.

Mark Harrison avatar Apr 18 '10 03:04 Mark Harrison
Aceptado

El límite depende tanto del servidor como del cliente utilizado (y, si corresponde, también del proxy que utiliza el servidor o el cliente).

La mayoría de los servidores y clientes tienen un límite de 8192 bytes (8 KB), que normalmente se puede configurar en algún lugar de la configuración del servidor o del cliente. La especificación HTTP recomienda 8000 octetos en la sección 4.1 :

Se RECOMIENDA que todos los remitentes y destinatarios admitan, como mínimo, URI con longitudes de 8000 octetos en elementos de protocolo. Tenga en cuenta que esto implica que algunas estructuras y representaciones en línea (por ejemplo, la línea de solicitud en HTTP/1.1) serán necesariamente más grandes en algunos casos.

Pero esto, por tanto, no es necesario. El límite es generalmente más bajo en clientes mayores. Por ejemplo, Internet Explorer tenía un límite de aproximadamente 2 KB. La versión anterior de la especificación HTTP incluso establece literalmente lo siguiente:

Nota: los servidores deben tener cuidado al depender de longitudes de URI superiores a 255 bytes, porque es posible que algunas implementaciones de clientes o proxy más antiguas no admitan adecuadamente estas longitudes.

Si se excede el límite en el navegador o en el servidor, la mayoría simplemente truncará los caracteres fuera del límite sin previo aviso. Sin embargo, algunos servidores pueden enviar un error HTTP 414 'URI demasiado largo' .

Si necesita enviar datos de gran tamaño, es mejor utilizar POST en lugar de GET. Su límite es mucho mayor, pero depende más del servidor utilizado que del cliente. Por lo general, el servidor web medio permite hasta unos 4 GB. Esto también se puede configurar en algún lugar de la configuración del servidor. El servidor promedio mostrará un error/excepción específico del servidor cuando se exceda el límite POST, generalmente como un error HTTP 500.

BalusC avatar Apr 17 '2010 20:04 BalusC

Usted está haciendo dos preguntas separadas aquí:

¿Cuál es la longitud máxima de una solicitud HTTP GET?

Como ya se mencionó, HTTP en sí no impone ningún límite codificado en la longitud de la solicitud; pero los navegadores tienen límites que van de 2 KB a 8 KB (255 bytes si contamos los navegadores muy antiguos ).

¿Hay un error de respuesta definido que el servidor puede/debe devolver si recibe una solicitud GET que excede esta longitud?

Esa es la que nadie ha respondido.

HTTP 1.1 define el código de estado 414 Request-URI Too Longpara los casos en los que se alcanza un límite definido por el servidor. Puedes ver más detalles en RFC 2616 .

Para el caso de límites definidos por el cliente, no tiene ningún sentido que el servidor devuelva algo, porque el servidor no recibirá la solicitud en absoluto.

Edurne Pascual avatar Apr 17 '2010 20:04 Edurne Pascual

Los límites del navegador son:

Browser           Address bar    document.location
                                 or anchor tag
---------------------------------------------------
Chrome                32779           >64k
Android                8192           >64k
Firefox                >64k           >64k
Safari                 >64k           >64k
Internet Explorer 11   2047           5120
Edge 16                2047          10240

¿Quieren más? Vea esta pregunta en Stack Overflow .

Jiraff537 avatar May 24 '2018 13:05 Jiraff537

Aquí hay una pregunta similar: ¿Existe un límite para la duración de una solicitud GET?

Llegué al límite y en mi cuenta de alojamiento compartido, pero creo que el navegador devolvió una página en blanco antes de llegar al servidor.

jay avatar Apr 17 '2010 20:04 jay