Newsgroup: it.comp.www.php
Titolo: Ah che bel problema che c'ho..

Perche' i problemi degli altri che leggo sul newsgroup (nota: la frase
si riferisce a it.lavoro.professioni.webmaster) mi sembrano sempre
cazzate risolvibili con un buon cervello e qualche ricerca su google
mentre i miei problemi mi sembrano 1000 volte piu' seri ed
impegnativi?
Egocentrismo? O reale abissale differenza?
Ad ogni modo, ho una pagina web costruita dinamicamente che richiama
immagini da altri siti. Alcune volte i siti non sono raggiungibili,
per la precisione e' l'indirizzo a non poter essere risolto. Internet
explorer notoriamente carica in parallelo le immagini, mica una alla
volta. Ma se la lettura avviene in parallelo cosi' non sembra essere
per la risoluzione degli indirizzi che invece pare proprio essere
sequenziale, un fifo. Significa che finche' non viene risolto un
indirizzo il browser (ma, peggio ancora, potrebbe anche essere una
cosa a livello di driver ip) non passa a risolvere il secondo. Nel mio
caso se sulla pagina ho 10 immagini da un sito per il quale non si
riesce a risolvere l'indirizzo, internet explorer cerca di risolvere
l'indirizzo, aspetta per ipotesi 10 secondi, non ci riesce e passa al
secondo, altri 10 secondi, non ci riesce e passa al terzo, eccetera.
Una attesa insostenibile! Ma c'e' di peggio, il buffer delle richieste
di risoluzione degli indirizzi viene immediatamente saturato dalle
richieste. Essendo lentissime ad essere processate il buffer rimane
saturo a lungo, anche minuti e il browser e' impossibilitato a
navigare su qualunque altra pagina, sia fermando il caricamento della
pagina sia chiamando un preferito sia scrivendo un indirizzo nella
barra degli indirizzi! Per raggiungere un nuovo indirizzo infatti il
browser manda una richiesta di risoluzione dell'indirizzo al suo
buffer che pero' e' saturo, quindi perche' il browser si sblocchi e
riprenda a navigare bisogna aspettare che tutte le risoluzioni degli
indirizzi vadano in timeout.
Non lo trovate questo un problema con le contropalle??
Qualcuno ha qualche idea per risolvere la faccenda?? Una soluzione che
possibilmente non implicasse di far cambiare browser/sistema_operativo
a tutto il mondo..

 tutto il mondo..
Wget e' trasparente all'utente: l'unico problema e' che ti fara'
camminare un bel po' il server... pero' puoi studiare un meccanismo di
cache.
buon divertimento...
-- 
Marco Bernardini - bernama chiocciola libero it
E' bello volare alti e liberi come un'aquila,
ma nessuna talpa e' mai finita nei motori di un jet.

cache.
C'e' gia': --timestamping (immagini statiche, server collaborativo).
Leonardo detto "il Pasticcia"
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 buffer che pero' e' saturo, quindi perche' il browser si sblocchi e
1) Scaricare l'immagini ed integrare nel tuo sito (sempre attenzione
ai diritti d'autore).
2) Risolvere l'IP in locale e sostituire il dominio con l'IP. Pero'
questo non funziona con host virtuali. Potresti tentare un mix per
ottimizzare almeno, host virtuali rimangono da risolvere con DNS,
altri con un IP fisso.
Saluti
Jurgen (per oggi da un account diverso)

>Prova ad usare wget: l'ultima versione e' sorprendente.
Come wget? E' un sito web, su un hosting. Va be' che pago ma da qua a
che mi lascino lanciare comandi shell ne passa! :) E comunque sarebbe
troppo oneroso scaricare le immagini in locale sul sito.

tutta risposta. O "missing.gif". Altrimenti spara un Location:.
Argutissimo come al solito Leonardo! Complimenti. Purtroppo pero' non
posso assumere che se un dominio non viene risolto dal client non
viene risolto neanche dal sito e viceversa. Proprio nei 2 casi che ho
potuto verificare di persona ho trovato che il mio sito risolveva
correttamente il dominio attraverso il suo dns mentre il dns del mio
provider a cui mi appoggio per la navigazione non riusciva.

altri con un IP fisso.
Come posso riconoscere un host virtuale da uno con ip fisso? E pensi
che ne valga la pena? Io sospeto che gli host virtuali siano la netta
maggioranza rispetto a quelli raggiungibili anche attraverso l'ip.


se provi a controllare il SIZE delle immagini con il comando di PHP?
se ti ritorna un size, vuol dire che l'immagine/sito e' raggiungibile
Fabrizio Parrella
http://www.bibivu.it
TWiN

:


Puoi ridurre il rischio, e ANCHE il carico sul browser client, inviando
un "Location:" con l'indirizzo IP gia' risolto.
Se hai controllo sui siti target, potresti metterci uno script in grado
di effettuare un call-back ("Si' - sono stato raggiunto dal cliente con
ID 123456") - e marcare il dominio del cliente come "positivo" per quel
sito.
Per gli IE, tieni presente che in genere sono Windows, quindi in genere
hanno il DNS assegnato dal provider - che in genere e' lo stesso che ha
in carico il provider medesimo.
Esempio pratico.
Vengo contattato da 62.123.9.130
	- lo risolvo inversamente in 
ppp-62-123-9-130.dial.atlanet.it
	- risolvo 
atlanet.it
	- ottengo come DNS: 213.234.128.211 e 213.234.132.130
	- chiedo "
www.ornitorinchi.it
" a 213.234.128.211
I problemi sono: (a) non e' supportato da Windows e (b) potrebbe essere
necessaria una estensione in Perl, in pratica
	fopen("
http://localhost/cgi-bin/checkdns.pl?ip=...&server=..
.",
Ma, se funziona (posso controllare in parallelo APPENA vengo contattato
da 62.123.9.130) allora segnero' nel database
atlanet.it
 
www.ornitorinchi.it
	IPOK	192.168.7.33	now()
Le richieste per i GIF trovano un record recente per atlanet, ed appena
mi chiede un gif su 
ornitorinchi.it
 gli posso mandare il Location; e so
che 
ornitorinchi.it
 e' un IP-based virtual host (o un single host), per
cui gli mando direttamente Location: 
http://192.168.7.33/images/x.gif
 e
gli risparmio tutto l'ambaradan di fare il resolving lui...
Leonardo creativo


Come posso riconoscere un host virtuale da uno con ip fisso?
if (!diff(fopen("sito/test.gif"), fopen(resolv("sito")."/test.gif"))
	$ipfisso = 1; //                ^^^^^^^^^^^^^^
Leonardo "if it quacks like a duck..."
