elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?  (Leído 3,876 veces)
Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« en: 7 Enero 2020, 00:16 am »

Estoy estudiando nodejs y aprendí sobre streams y buffer. Lo encontré muy interesante porque se me ocurrió usarlo en un servidor HTTP, ya que si una solicitud es demasiado grande, los datos se pueden enviar poco a poco, especialmente cuando se usa el verbo POST para subir archivos grandes, como videos por ejemplo. El problema es que no todos los datos (archivos en este caso) son muy grandes. ¿Existe alguna manera de saber el tamaño de una solicitud antes de que llegue a su destino?

A mi se me ocurrió desde el cliente evaluar el tamaño del archivo antes de ser enviado y pasar el valor al servidor, pero no se si eso se puede hacer o si corro riesgo de performance. En caso de no ser posible ¿Existe alguna otro alternativa?


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #1 en: 7 Enero 2020, 01:02 am »

Si te refieres a los archivos:

Resumable.js

http://www.resumablejs.com/

Citar
What is Resumable.js
It’s a javascript library providing multiple simultaneous, stable and resumable uploads via the HTML5 File API.

The library is designed to introduce fault-tolerance into the upload of large files through HTTP. This is done by splitting each files into small chunks; whenever the upload of a chunk fails, uploading is retried until the procedure completes. This allows uploads to automatically resume uploading after a network connection is lost either locally or to the server. Additionally, it allows for users to pause, resume and even recover uploads without losing state.

Lo he usado para subir archivos de hasta 10 GB.

Si lo que realmente quieres es aprender a utilizar el input file del HTML te puede devoler un arreglo "files" con el cada uno de los items puedes obtener el size individual: File.size

https://developer.mozilla.org/en-US/docs/Web/API/File

Si te refieres a la data de que mandas mediante POST, lo ideal seria obtener el length de todos los campos URLencodedeados + los nombres de las variables y con eso se das mas o menos cuanto va a ser el Content-Length final, generalmente se mandan:

Código:
Variable1=DATA+URL+Encode&Variable2=DATA+URL+Encode&Variable3=DATA+URL+Encode

Y asi sucesivamente, a no se que lo estes mandando en JSON o XML o algun otro formato

Saludos!


« Última modificación: 7 Enero 2020, 01:20 am por AlbertoBSD » En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #2 en: 10 Enero 2020, 00:37 am »

Si te refieres a los archivos:

Resumable.js

http://www.resumablejs.com/

Lo he usado para subir archivos de hasta 10 GB.

Lo que necesito saber es cuánto pesa la petición antes de que llegue para saber si usar streams o no. Porque si tengo una petición de 1MB lógicamente no la voy a mandar de a poco, la subo y listo, pero si es de 1GB o más, entonces lo más senzato sería usar streams o cualquier librería como la que me muestras. El problema es saber cuánto pesa la petición antes de que esta sea procesada para definir cómo será procesada.
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #3 en: 10 Enero 2020, 02:49 am »

Por eso que tipo de petición es?

Ya te puse los ejemplos, Archivos, Post, Json, otro?

Desde donde lo estas viendo desde un navegador, desde un proxy desde el server?

Si son archivos utiliza resumable, funciona desde 0 bytes hasta teóricamente el Máximo de capacidad del cliente, manda los archivos en pequeños chunks de tamaña configurable (Usualmente 1 MB).

Saludos
En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #4 en: 10 Enero 2020, 03:10 am »

Por eso que tipo de petición es?

Ya te puse los ejemplos, Archivos, Post, Json, otro?

Desde donde lo estas viendo desde un navegador, desde un proxy desde el server?

Si son archivos utiliza resumable, funciona desde 0 bytes hasta teóricamente el Máximo de capacidad del cliente, manda los archivos en pequeños chunks de tamaña configurable (Usualmente 1 MB).

Saludos

Son archivos en este caso. Bien, entonces resumable hace todo el trabajo en el frontend (mido el tamaño del archivo y si es mayor a una cantidad específica lo envía poco a poco?) y ¿Cómo recibe los chunk en el backend? ¿Por medio de los streams? Estoy usando NodeJS.
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #5 en: 10 Enero 2020, 03:20 am »

El backend si tiene que ser configurado para ensamblar los chunks en la pagina de github de resumable hay un codigo de ejemplo para nodejs

https://github.com/23/resumable.js/tree/master/samples/Node.js

Yo lo he implementado en el backend con php y funciona muy bien.

Obvio hay que validar que sea un archivo valido que no te vallan a injectar código etc etc..

Básicamente resumable divide el archivo original en fragmentos y los envia individualmente uno a uno los fragmentos como upload de archivos normales y tu desde el backend le respondes con headers 200 o 404 en caso se exito o de error respectivamente.

Siempre hace ese proceso independiente del archivo original.

Saludos
En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #6 en: 10 Enero 2020, 03:27 am »

Ya vi el ejemplo de NodeJS y está bastante trabajoso, pero bueno, valdrá la pena después de todo. Hay que aprovechar el tema de los streams y el asincronismo. Ya hoy en día la gente sube hasta fotos de 4MB ¿Qué quedará para los videos y las transmisiones?
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #7 en: 10 Enero 2020, 03:38 am »

Ya vi el ejemplo de NodeJS y está bastante trabajoso, pero bueno, valdrá la pena después de todo.

Si algo trabajoso, sin embargo bien configurado y filtrado todo tipo de archivos maliciosos queda bastante bien

Ya hoy en día la gente sube hasta fotos de 4MB ¿Qué quedará para los videos y las transmisiones?

Una foto de 4 o 6 MB de una nota de texto que dice un numero telefonico de 10 dígitos 🤣🤣🤣....

De hecho esa libreria de javascript, la realizo una empresa precisamente para trabajar con archivos de videos.



En línea

Ali Baba


Desconectado Desconectado

Mensajes: 310


Ver Perfil WWW
Re: ¿Cómo saber el tamaño de una solicitud HTTP antes de que llegue a su destino?
« Respuesta #8 en: 10 Enero 2020, 03:45 am »

Una foto de 4 o 6 MB de una nota de texto que dice un numero telefonico de 10 dígitos 🤣🤣🤣....

Jeje, si, cuidado no se de el caso. Impresionante, pero cierto.


De hecho esa libreria de javascript, la realizo una empresa precisamente para trabajar con archivos de videos.

Lo mejor de todo es que creo que es open source. Profundizaré. Gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como saber el tamaño de un array de tipo int
Programación C/C++
Blaster 4 49,740 Último mensaje 8 Noviembre 2012, 19:31 pm
por Blaster
Apple lleva la censura a un nuevo nivel y borra e-mail antes que éste llegue ...
Noticias
wolfbcn 0 1,765 Último mensaje 2 Marzo 2013, 01:12 am
por wolfbcn
como hacer una solicitud HTTP GET a una URL en C++?
Programación C/C++
SoyelRobert 6 4,835 Último mensaje 31 Julio 2014, 11:59 am
por ivancea96
saber destino de correo
Seguridad
ea30 2 2,356 Último mensaje 31 Mayo 2017, 22:32 pm
por Serapis
Cómo saber cuánta ‘potencia’ tiene una CPU antes de comprarla
Noticias
wolfbcn 5 2,037 Último mensaje 21 Enero 2018, 16:20 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines