¿Existe un límite en la duración de una solicitud GET?

¿Existe un límite en la duración de una solicitud GET?

No en el RFC , no, pero hay límites prácticos.

El protocolo HTTP no pone ningún límite a priori en la longitud de un URI. Los servidores DEBEN poder manejar el URI de cualquier recurso que prestan servicios, y DEBERÍAN poder manejar URI de longitud ilimitada si proporcionan formularios basados ​​en GET que podrían generar dichos URI. Un servidor DEBERÍA devolver el estado 414 (Request-URI Too Long) si un URI es más largo de lo que el servidor puede manejar (ver sección 10.4.15).

Nota: Los servidores deben tener cuidado de no depender de longitudes de URI superiores a 255 bytes, ya que algunas implementaciones de cliente o proxy anteriores pueden no admitir adecuadamente estas longitudes.

Este artículo lo resume bastante bien

Resumen: depende de la implementación, ya que no hay un límite especificado en el RFC. Sería seguro usar hasta 2000 caracteres (límite de IE). Si estás cerca de esta longitud, debes asegurarte de que realmente necesitas URI durante tanto tiempo, tal vez un diseño alternativo podría evitarlo.

Los URI deben ser legibles, incluso cuando se usan para enviar datos.

Según lo solicitado por el usuario Erickson, publico mi comentario como respuesta:

He hecho más pruebas con IE8, IE9, FF14, Opera11, Chrome20 y Tomcat 6.0.32 (instalación nueva), Jersey 1.13 en el lado del servidor. Usé la función jQuery $ .getJson y JSONP. Resultados: todos los navegadores permitieron hasta alrededor de 5400 caracteres. FF e IE9 hicieron hasta alrededor de 6200 caracteres. Todo lo anterior arrojó “400 solicitud incorrecta”. No investigué más sobre qué era responsable de los 400. Estaba bien con el máximo que encontré, porque necesitaba alrededor de 2000 caracteres en mi caso.

La especificación no limita la longitud de una solicitud HTTP Get, pero los diferentes navegadores implementan sus propias limitaciones. Por ejemplo, Internet Explorer tiene una limitación implementada en 2083 caracteres.

W3C inequívocamente negó esto como un mito aquí

http://www.w3.org/2001/tag/doc/get7#myths

setFixedLengthStreamingMode (int) con parámetros contentLength podría establecer la longitud fija de un cuerpo de solicitud HTTP.