Mi piacerebbe capire cosa succede sotto il cofano quando si carica un web.Come funziona il caricamento di file HTTP internamente in IIS?
Credo che uno di questi:
- Il file viene caricato in memoria dal browser, inviato al buffer di memoria del server web, e quindi l'applicazione viene notificato per raccoglierlo.
- Il file viene letto dal browser e allo stesso tempo inviato al server Web, che può iniziare a salvare i byte in modo progressivo.
Ho provato a caricare un file molto grande e ho inserito un punto di interruzione sulla prima riga del metodo che ha ricevuto il caricamento. Ho visto come il browser utilizzava molto tempo per caricare ... ma il punto di interruzione non è stato ancora raggiunto, e dopo un po 'il punto di interruzione è stato raggiunto.
Voglio capire questo, perché nella peggiore delle ipotesi, se permetto grandi upload, potrebbero far esplodere la memoria del server ad un certo punto.
Cosa succede se carico un file da 2 GB? (considerando che il web server/app accetta quella lunghezza) richiederebbe 2 GB di memoria del server?
Cheers.
Sarei molto sorpreso se non lo trasmettesse in streaming in un file temporaneo una volta superata una certa dimensione, indipendentemente da quando il consumatore viene informato, ma non ho un riferimento per questo. – Rup
giusto, avrebbe perfettamente senso. Probabilmente dovrei chiederlo nei forum IIS/Apache perché forse è una domanda molto specifica. – vtortola
Oh, ci sono tutti i tipi qui - mi aspetto che qualcuno lo saprà :-) – Rup