Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2007, 15:04   #1
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Un semplice tunnel http

Devo far transitare il protocollo di due applicazioni tramite protocollo http, in modo da poter passare attraverso proxy. La mia idea è far aprire al client un canale con GET, dove il server imposta nella risposta un Content-Type: application/octet-stream e Transfer-Encoding: chunked, quindi procede ad inviare i dati nel formato previsto da questo transfer; il client apre un canale con POST e invia i dati nella stessa maniera.
Essendo alquanto ignorante della materia, chiedo:
- si può usare Transfer-Encoding: chunked con POST?
- sarebbe bello poter utilizzare la stessa connessione per inviare i dati sia in un verso che nell'altro. E' possibile? (da alcune prove che ho fatto, sembrerebbe di no)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:22   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Fammi capire devi ottenere un canale di comunicazione bidirezionale e, soprattutto, sempre aperto tramite HTTP ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:32   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cionci Guarda i messaggi
Fammi capire devi ottenere un canale di comunicazione bidirezionale e, soprattutto, sempre aperto tramite HTTP ?
Sarebbe l'ottimo, ma posso fare i conti con quello che ho a disposizione. Il mio problema è che non ho sufficiente esperienza in questo campo per sapere cosa è supportato e cosa no.
Ho appena visto, ad esempio, che non posso fare una trasmissione "chunked" con POST o PUT. O, almeno, squid non la supporta. Riguardo il canale bidirezionale, mi sono messo l'anima in pace.

Se ne sai qualcosa sulle tecniche a disposizione, ogni consiglio è bene accetto.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:38   #4
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
ma devi farlo tu applicativamente?
usare un supporto esterno (tipo http://www.nocrew.org/software/httptunnel.html ) non è un'opzione?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:41   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da kingv Guarda i messaggi
ma devi farlo tu applicativamente?
usare un supporto esterno (tipo http://www.nocrew.org/software/httptunnel.html ) non è un'opzione?
L'ho visto, non sembra idoneo al mio caso. Volevo implementare qualcosa di semplice a livello applicativo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:48   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Vediamo, me ne vengono in mente due:

- Sfrutti Java RMI ed il supporto tunnel HTTP (è realizzato tramite CGI) in modo da pacchettizzare i dati in chunk da inviare tramite oggetti RMI.
- Se entrambi gli endpoint sono dietro ad un proxy HTTP: ti crei una servlet che permetta riceve i dati a pacchetti (tramite POST) e specularmente invia i dati da trasmettere all'altra servlet. Ovviamente di fatto sono due connessioni HTTP separate.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:52   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cionci Guarda i messaggi
Vediamo, me ne vengono in mente due:

- Sfrutti Java RMI ed il supporto tunnel HTTP (è realizzato tramite CGI) in modo da pacchettizzare i dati in chunk da inviare tramite oggetti RMI.
-ENOJAVA
Quote:
- Se entrambi gli endpoint sono dietro ad un proxy HTTP
No il lato server è pubblico

Più che utilizzare cose esistenti, volevo qualche dritta sul protocollo in se per implementare una soluzione semplice tagliata per il mio caso specifico. Il protocollo http in se non è complesso.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12

Ultima modifica di ilsensine : 20-03-2007 alle 16:54.
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 16:58   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sul lato pratico...l'architettura esistente qual è ?

Server | Proxy <<<-->>> Client
Client | Proxy <<<-->>> Server

Suppongo la seconda, giusto ?
Il proxy è trasparente o non trasparente ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:01   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Da quello che ho visto fin'ora, la trasmissione s->c è facilmente realizzabile tramite un GET e una risposta chunked. Questo mi offre la massima flessibilità sui dati trasmessi. La parte c->s è un pò più complicata, visto che non posso usare il trucco della trasmissione "chunked" devo usare un classico POST esplicitando il content length ed attendendo l'http ok di risposta. L'identificazione dei due canali come un unico strato di trasporto posso farla impostando un "fake cookie" nel GET, e rimandandolo indietro nel POST. Il cookie passa tranquillamente il proxy. Dovrebbe andare, credo...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:02   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cionci Guarda i messaggi
Sul lato pratico...l'architettura esistente qual è ?

Server | Proxy <<<-->>> Client
Client | Proxy <<<-->>> Server

Suppongo la seconda, giusto ?
Sì la seconda. Dovrebbe funzionare sia in modalità proxy trasparente che esplicito (posso configurare il client per uno dei due casi).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:19   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Fai per favore qualche prova di questo tipo, a seconda del proxy dovrebbe funzionare.

Inizia la connessione in HTTP 1.1 in questo modo il proxy dovrebbe capire che deve lasciare aperta una connessione fino a quando uno degli endpoint non la chiude. Così puoi scambiarti dati continuamente con una sequenza POST dal client/risposta del server.
Dal Client invia una richiesta POST avente come destinazione il tuo server e nel body mettici i dati RAW (fregatene dell'encoding visto che è una cosa che dovrebbe riguardare solo il server di destinazione e il proxy possibilmente non dovrebbe metterci le mani). L'unica cosa consistente dovrebbe essere la dimensione dei dati da specificare nell'header.
Dal server rispondi con un header HTTP/1.1 200 (importante anche qui la dimensione dei dati) e gli ci butti dietro i dati di risposta in RAW.
Ovviamente il client non potrà inviare un POST di dimensione incgnita quindi stabilisci la dimensione massima da bufferizzare e quando il buffer è pieno trasmetti. Il server dovrà sempre rispondere ad una richiesta POST anche se non ha dati da trasmettere.
La connessione *dovrebbe* rimanere aperta quindi di fatto hai una connessione bidirezionale anche se devi pacchettizzare i dati.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:21   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ilsensine Guarda i messaggi
Da quello che ho visto fin'ora, la trasmissione s->c è facilmente realizzabile tramite un GET e una risposta chunked. Questo mi offre la massima flessibilità sui dati trasmessi. La parte c->s è un pò più complicata, visto che non posso usare il trucco della trasmissione "chunked" devo usare un classico POST esplicitando il content length ed attendendo l'http ok di risposta. L'identificazione dei due canali come un unico strato di trasporto posso farla impostando un "fake cookie" nel GET, e rimandandolo indietro nel POST. Il cookie passa tranquillamente il proxy. Dovrebbe andare, credo...
Io non andrei ad implementare il protocollo HTTP, ma "falsificherei" il protocollo in modo che venga riconosciuto dal proxy.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2007, 17:23   #13
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Sto facendo proprio prove di questo tipo, dovrebbe funzionare. L'unica incognita è se il proxy decide di buttare giu spontaneamente una connessione keep alive. Sul secondo canale potrei anche tollerarlo tutto sommato, il canale iniziato con GET invece non dovrebbe cadere.

Sto facendo le prove con squid, che implementa solo l'http 1.0 (ma l'encoding chunked lo fa passare, questo è importante).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Le sonde spaziali ESA ExoMars e Mars Exp...
Roscosmos: static fire per i propulsori ...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:00.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v