Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 20025|Respuesta: 0

[ASP.NET] ASP.NET Paso de Parámetros, Límites de Longitud y Precauciones de Uso.

[Copiar enlace]
Publicado en 8/3/2018 10:18:07 | | | |
1. Causas del problema
En el anexo "Problemas posteriores al lanzamiento" de las estadísticas de errores tras la publicación de un proyecto, se encuentran:   



Como acumulación de experiencia, estos problemas, causas y soluciones se incluirán en la lista de comprobación, y entonces:
La primera pregunta: ¿Es la referencia precisa el límite superior del parámetro URL? ¿Cuál es el límite superior?
Segunda pregunta: ¿Por qué hay un límite de datos cuando se hace POST? ¿El límite es de 128K?  
2. Análisis del problema
1. El primero:
1) No hay límite superior de parámetros en la URL. El problema es que IE tiene un límite de longitud en las URLs.
2) La especificación del protocolo HTTP tampoco limita la longitud de la URL. Este límite es una limitación impuesta por un navegador y servidor específicos. El límite de longitud de URL de IE es de 2083 bytes (2K+35). Para otros navegadores como Netscape, Firefox, etc., no existe un límite teórico de longitud, y su límite depende del soporte del sistema operativo. [Ref. 1]
3) "Los parámetros de longitud variable se transmiten vía URL" en realidad significa que se utiliza el método GET al enviar el formulario, no el método POST. Lo que causa este posible error es el uso del método GET para enviar los datos del formulario. Porque el método GET pasa los datos de la URL al servidor para su procesamiento.
4) Ten en cuenta que este límite es la longitud total de la URL, no solo la longitud de tu valor de parámetro.
5) Dado que es el límite de IE en la longitud de la URL, tanto el método GET como el método POST tienen esta limitación.
(Por favor, consulte el documento relacionado para más detalles sobre los métodos GET y POST del FORMULARIO [Ref. 2])  
Recomendaciones:
1) Comprender el entorno en el que se encuentra la aplicación, como el entorno del navegador y servidor de la aplicación web, y comprender sus limitaciones específicas de parámetros.
2) Utilizar el método POST tanto como sea posible para enviar datos complejos. Nota: Cuando FORM no escribe el atributo del método, el valor predeterminado es usar el método GET.
Conclusión (escribir en la lista de comprobación):
Al enviar datos usando el método GET, debes considerar el límite de longitud de URL de 2083 bytes en el entorno IE.
2. La segunda:
1) Teóricamente, POST no tiene límite de tamaño. La especificación del protocolo HTTP tampoco tiene límite de tamaño.
2) "Hay un límite de tamaño de 128K para los datos POST" no es lo suficientemente preciso, no hay límite para los datos POST, y la potencia de procesamiento del procesador del servidor juega un papel limitante.
3) Para los programas ASP, existe un límite de longitud de datos de 100K cuando el objeto Request procesa cada campo de formulario. Pero con Request.BinaryRead no hay tal limitación. Para soluciones que requieran procesar más de 100K datos del dominio de formularios, consulte [Ref. 3] más abajo.
4) Por extensión, para IIS 6.0, Microsoft ha aumentado las restricciones por razones de seguridad [Ref. 4]. También debemos prestar atención a:
   IIS 6.0 por defecto tiene un máximo de 200 KB de datos ASP POST, y el límite es de 100 KB por campo de formulario.
    El tamaño predeterminado de los archivos de subida de IIS 6.0 es de 4MB.
    IIS 6.0 por defecto tiene una cabecera máxima de solicitud de 16KB.
    Estas limitaciones no estaban disponibles antes de IIS 6.0.
Recomendaciones:
1) Conocer la configuración predeterminada del entorno de ejecución te ayudará a diseñar y resolver rápidamente los problemas que surjan.
2) Se debe considerar la versión del servidor. Cada versión de IIS tiene diferentes ajustes por defecto para estos parámetros, así que si es necesario, busca información y compila una tabla comparativa. De este modo, hay una referencia para el desarrollo y las pruebas.
3) Estas limitaciones de IIS 6.0 son en realidad solo sus ajustes por defecto, y puedes modificarlos en el entorno real de la aplicación.
    En WINNT/system32/inetsrv/MetaBase.xml, la definición por defecto es:
        AspBufferingLimit="4194304" corresponde al tamaño máximo del archivo subido
        AspMaxRequestEntityAllowed="204800" corresponde a la cantidad máxima de datos en POST
        ...
Conclusión (escribir en la lista de comprobación):
Al usar ASP, hay que tener en cuenta que el formulario POST tiene un límite de 100KB por campo para el procesamiento general de lectura. Considera si usar Request.Binary.





Anterior:asp.net mvc configura el post del formulario para permitir el envío de HTML
Próximo:System.Linq.Dynamic
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com