Bonjour, j'aimerai via un programme Java récupérer la taille d'une page html, j'entend par la la bande passante qu'elle consomme sur le serveur.
En gros il faudrait pouvoir calculer la tailles du texte et des images qu'elle contient.
Merci d'avance
Bonjour, j'aimerai via un programme Java récupérer la taille d'une page html, j'entend par la la bande passante qu'elle consomme sur le serveur.
En gros il faudrait pouvoir calculer la tailles du texte et des images qu'elle contient.
Merci d'avance
heu, pour la bande passante t'aurait pas besoin d'un référenteil de temps aussi ?
et du coup scanner directement le port 80 ?
la bande passante sera differente selon le temps, s'il te faut 10 minutes pour telecharger la page que s'il t en faut 1..., dans le deuxieme cas, la bande passante sera plus grande.
Ok, mais cela ne me dit pas comment faire...
j'ouvre un socket sur le port 80 et je lis tous ce qui y transite, c'est ca à quoi tu pense ?
en fait je cherche à faire exactement ce que fait cette page... mais en java...
http://www.websiteoptimization.com/services/analyze/
oui, a peu pres.
Sauf que tu risque de scanner un port utilisé par un serveur HTTP, donc ce sera un peu plus compliqué.
Pour ton site je peux pas l'ouvrir, dsl l'admin du boulot veux pas
En fait je pense que la meilleur solution est de scanner le traffic reseau de ta carte via un protocole qui va bien (je sais que SNMP le fait)...
J'ai l'impression que pour estimer la qualité de la bande passante, ce site calcule simplement le temps nécessaire au chargement d'un nombre arbitraire d'octets et fourni une simple moyenne. Ce nombre doit être suffisamment grand pour rendre négligeable le temps nécessaire à l'interrogation de l'horloge, et suffisament petit pour pouvoir faire une moyenne significative. Le plus compliqué est de décomposer le contenu d'un site en calculant le volume occupé par les images, les scripts, etc. Ca implique de parser le document html.Envoyé par kivan666
Ok, parser une page HTML c'est faisable, mais comment récupérer la taille de chacun de ses éléments ?
Si le flux est parsé à la volée, il faut repérer les balises ouvrantes qui t'intéressent et compter les octets jusqu'à la balise fermante. Mais c'est pas si simple car il ne faut pas ralentir le chargement si on a affaire à une grosse bande passante. On pourrait vouloir charger dans un StringBuffer puis parser celui-ci sur le même principe en comptant cette fois les caractères (UTF-16 en Java). Dans ce cas, il ne faut pas oublier de tenir compte du format d'encodage et compter deux octets si le caractère est supérieur à 127 en UTF-8 ou 255 en ISO. Pour les images, il faut récupérer le chemin et les charger individuellement, là encore en comptant les octets passer. J'espère que j'ai été clair![]()
alors pour commencer avec le HTML, si mon programme lit 2000 caractères, combien cela représente-t-il d'octets ?
Si le texte est au format ISO (récupérer le paramètre charset : http://www.la-grange.net/w3c/html4.0...t.html#h-5.2.1 ), ça fait 2000 octets.
Si le texte est au format UTF-8, là il faut tester la valeur de chaque caractère (les caractères sont des types numériques en Java) : si le caractère est inférieur à 127, il est codé sur un octet, sinon il est codé sur deux octets. Et on fait la somme de tout ça. En fait c'est un peu plus compliqué, mais ce mode de calcul devrait suffire pour toutes les pages écrites en alphabet latin.
Dans un deuxième temps, si tu veux améliorer le support des standards : http://unicode.org
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager