[Linuxtrent] Re: HTTP response con attachement multipli

  • From: Antonio Galea <antonio.galea@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Fri, 17 Feb 2012 16:46:53 +0100

2012/2/17 azazel <azazel@xxxxxxxxxxxxxxx>:
>
>    Daniele> Ho fatto qualche ricerca e sembra che il protocollo HTTP
>    Daniele> supporti anche risposte con payload MIME multipart.

Il supporto per questa cosa è limitato a Firefox, e non so neanche
dirti quanto sia buono.

Per offrire download multipli a partire da una sola richiesta,
anche Gmail ha scelto di creare uno zip - è la cosa più
semplice e funziona bene.

> Ho anche io necessità simili, nel mio caso si tratta di sviluppare un
> proxy per il mobile che "comprima", una serie di chiamate ad API HTTP
> in un'unica transazione, mantenendo però una certa efficienza lato
> server.

Nel tuo caso, un tentativo da provare sarebbe di tarare bene il
meccanismo del KeepAlive sul server web - così riusi il più a
lungo possibile la stessa connessione TCP, ed incapsulare il
traffico server/proxy in un tunnel compresso.

> Anche io mi son fermato per un po' sull'encoding multipart/related ma
> appunto il suo tallone d'achille sono la definizione della lunghezza
> totale del messaggio nell'header dell'unica risposta e forse anche un
> overhead di encoding base64 (ma dovrei rinfrescarmi la memoria),

No, il problema più grosso è che nei browser non va.

> poi ho cambiato angolo di visione al problema ed ho scoperto l'encoding
> "chunked" di HTTP 1.1 [1]_ che sembra mettere assieme capra e cavoli,

Anche questo non è proprio funzionale su qualsiasi navigatore: forse nel tuo
caso va comunque bene, il tuo proxy vive fuori dal browser e fa quel che
vuole - a Daniele non serve, temo.

> b) Approfondire tecnoligie simil- Comet come WebSocket e vedere se e che
>   strumenti utilizzano per rispondere alla medesima problematica.

In passato ho usato Python con Orbited (http://labs.gameclosure.com/orbited2/),
di recente preferisco Node.JS e Socket.IO (http://socket.io/).

Se guardi il codice di Socket.IO, vedrai che per avere un buon supporto sui
vari browser sono costretti ad implementare parecchie tecniche diverse.

Però attento che il problema di Daniele non è di fare molte richieste in
contemporanea in modo efficiente, bensì di far digerire al browser molte
risposte tutte assieme - e questo temo non abbia soluzione dentro al
browser. Allo stato attuale, o usi uno zip o passi a tecnologie "extra":
un applet Java, un Active X, un movie Flash ti consentono tutti di fare
quel che vuoi.

Antonio
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: