
Contexte
J'ai une tablette misérable à bas prix sur Windows 10 avec un gigaoctet de RAM et 16 gigaoctets d'espace, dans lequel Windows 10 est installé. Pour que Windows 10 puisse en quelque sorte télécharger et installer des mises à jour - j'ai tordu la taille du fichier d'échange à zéro et le fichier d'échange. sys a cessé de prendre de précieux gigaoctets.
Après cela, j'ai été surpris de constater qu'il est impossible d'utiliser Chrome, Internet Explorer ou même l'ancien Opera 12 pour afficher des sites plus ou moins grands sur cette tablette. Tous essaient de montrer le site plusieurs fois, redémarrez-le à nouveau (il semble il ne rentre pas dans la vraie RAM sans fichier d'échange), et après la deuxième tentative de téléchargement, il affiche un message d'échec.
Pourquoi, lorsque la taille du code HTML source du site est de plusieurs centaines de kilo-octets, un ordinateur avec un gigaoctet de RAM ne peut pas le dessiner?
Apparemment, parce que le site se compose d'éléments hétéroclites, y compris des scripts JavaScript (ou même VB) (qui doivent être exécutés après le chargement et lors d'événements tels que "le mouvement de la souris sur un élément", etc.), des styles CSS, des cadres avec d'autres pages , médias (photos, musique, vidéos, etc.). Lorsqu'un site se charge, le navigateur charge le code du site principal, puis commence à charger les fichiers associés, à exécuter et à préparer des scripts pour l'exécution, à charger et afficher des images, à charger des styles, à calculer le style final pour chaque élément de page après avoir appliqué plusieurs styles, à placer tous les éléments sur la page et alors seulement donne à l'utilisateur de voir le site.
Je souhaite voir rapidement et immédiatement le site (télécharger uniquement son code HTML), et uniquement les éléments qui m'intéressent:
- sur une seule page je veux voir seulement le texte
- vers un autre texte avec des liens
- sur les troisièmes images seulement, mais pas toutes, mais sélectivement une par une en les chargeant manuellement
- le quatrième, je veux lire en plus des commentaires
- le cinquième, lisez le code du script Java, désactivant l'affichage de tout le reste.
Et dans certains cas, je ne voudrais pas lors de la navigation sur les sites:
- voir des fenêtres / panneaux avec de la publicité sous forme de photos et d'animations simples pour des vidéos vocales à part entière,
- voir les fenêtres "abonnez-vous à notre newsletter depuis notre site",
- voir les fenêtres "activer les notifications de notre site" ou, à l'ancienne, "faire notre page d'accueil",
- voir les fenêtres "permettent à la géolocalisation de savoir où vous êtes, notre client"
- voir les fenêtres "désolé, nous utilisons des cookies sur ce site",
- transmettre des cookies.
Comment faire Il est clair que vous devez écrire un autre navigateur et l'utiliser!
Au début, il me semblait que tout serait simple. Prenez et écrivez un analyseur de code HTML. Nous chargeons les balises, les divisons en morceaux, affichons le texte à l'extérieur des balises sous forme de texte, et si vous rencontrez, par exemple, un href = "
habr.com ", puis l'affichez sous forme de lien. "Delov!" J'ai pensé et je me suis assis à Delphes.
Implémentation d'une sélection d'éléments à visualiser
La liste des éléments pouvant être activés pour l'affichage ou désactivés s'est allongée au cours du développement du navigateur.

Ici apparaissait le texte du site lui-même, et les bordures des tables / couches div, et du texte séparé avec des "accents" (gras, italique et autres balises de surbrillance), des liens et des ancres de signet, des médias (images, musique, vidéo), des fichiers associés "lien ...", des marques de commentaire "! - ... -", ainsi que des scripts, des styles de style, des formulaires, des méta-métadonnées avec la possibilité d'afficher leur code. Pour chaque type d'élément, vous pouvez sélectionner la couleur et la gras du texte. Vous pouvez également choisir un thème prêt à l'emploi, qui comprend une certaine coloration des éléments, ainsi que le style du texte.
Implémentation des paramètres généraux
La partie supérieure de la fenêtre du navigateur a finalement été recouverte de paramètres et a commencé à ressembler à des panneaux avec des boutons MS Office. Il y avait des drapeaux, des listes déroulantes et des boutons pour appeler des fonctions comme les signets ou l'historique.

Là, vous pouvez, par exemple, choisir le nom et la taille de la police que vous souhaitez afficher comme dans un éditeur de texte. Il est également devenu possible de télécharger une police raster PCF tierce (police PaintCAD) et de dessiner une image avec cette police. Dans la capture d'écran, la police sc60micro.pcf, copiée manuellement depuis le navigateur de l'ancien téléphone, est chargée, quelqu'un se souvient probablement encore du navigateur wap de siemens d'il y a 15 ans:




Mettre en œuvre des paramètres de confidentialité
Directement en dessous des paramètres généraux se trouvent les paramètres de confidentialité:

En utilisant la case à cocher Referer, vous pouvez désactiver le transfert de l'adresse d'où vous êtes venu sur la page Web. Drapeau des cookies - désactivez les cookies.
Et en utilisant le champ User-Agent, vous pouvez choisir qui prétendre être - l'un des navigateurs informatiques ou mobiles, ou vous pouvez même google / bing / yandex / mailru-bot. Si vous sélectionnez l'une des options, le texte de droite affiche le texte de l'en-tête http envoyé au serveur d'agent utilisateur. Dans ce champ, vous pouvez également saisir manuellement votre user-agent au lieu de choisir l'une des options proposées par le navigateur.

Utilisation de fichiers téléchargeables: panneau d'objets et panneau de fichiers
Si le navigateur rencontre, par exemple, un lien vers une image, il écrit un lien de la forme «Image: adresse». En cliquant dessus, le lien est transféré vers le panneau de l'objet.
Selon que la sauvegarde complète du trafic ou la sauvegarde du trafic sur les téléchargements est incluse, les informations sur le fichier s'affichent dans le champ d'informations sur l'objet.

L'utilisateur décide de télécharger le fichier ou non (par exemple, s'il se trouve sur Internet mobile et se sent désolé pour le trafic, et que le fichier s'est avéré être volumineux - alors vous ne pouvez pas le télécharger). Vous pouvez télécharger le fichier en utilisant le bouton de téléchargement à droite du champ d'objet.
Si l'enregistrement est désactivé, le fichier sera automatiquement téléchargé dans le dossier de téléchargement à côté de l'EXE du navigateur et:
- ouvrir dans le programme par défaut s'il s'agit d'un fichier sécurisé (image, musique, vidéo),
- déplacé vers le champ du fichier et mis en évidence dans la fenêtre de l'explorateur qui s'ouvre si le fichier est potentiellement dangereux ou inconnu du navigateur.
Panneau de fichiers:

Il comprend un champ avec le nom du fichier enregistré et des boutons:
- ouvertures dans le programme par défaut,
- ouvrir un dossier avec un fichier en mettant l'accent sur le fichier,
- Ouvrir un fichier dans le navigateur JustCode lui-même,
- ouverture d'un fichier dans le bloc-notes notepad.exe.
Menu principal pour écran tactile
Cliquer sur l'icône du navigateur dans le coin supérieur gauche ouvre un menu avec des icônes de 32x32 pixels, qui duplique de nombreuses fonctions de la fenêtre principale. Ce menu contient des éléments de taille assez importante, ce qui permet de les appuyer avec votre doigt beaucoup plus facilement que lorsque vous visez de petits drapeaux tels que le codage UTF-8 ou l'option de sélectionner le mode d'économie de trafic.

Travailler avec le code source du site et l'automatisation
Si vous appuyez sur Ctrl + E ou sélectionnez une commande similaire dans le menu principal, le code source complet du site sera placé dans la zone d'informations sur l'objet.
Là, dans la ligne «Rechercher», vous pouvez saisir du texte et le rechercher avec les boutons avec une loupe (première occurrence, prochaine occurrence, dernière occurrence) dans le code source.

D'autres boutons colorés sous le champ de recherche le permettent (de nombreux boutons JustCode ont des info-bulles décrivant leurs fonctions):
- supprimer tout au-dessus ou en dessous du texte sélectionné / trouvé,
- transformer les codes% xx en caractères,
- transformez les codes javascript comme \ n en caractères,
- insérer des tirets avant / après chaque texte trouvé, similaire à celui entré dans la ligne "Rechercher",
- supprimer toutes les lignes qui ne contiennent pas de texte saisi dans la ligne "Rechercher"
- vérifier tout ce qui reste dans la zone de ligne en tant que liens http vers des fichiers,
- télécharger le code source du site modifié sur JustCode pour affichage,
- et même ouvrir l'éditeur de programme (scripts) (Ctrl + F5), qui vous permet de "presser" automatiquement les boutons décrits d'une manière de commande.
Editeur de ses propres programmes JustCode

Dans la fenêtre de cet éditeur, par exemple, un modèle est ouvert qui prend le code de page de la vidéo YouTube vers des liens individuels vers la vidéo et l'audio.
Il est clair qu’il existe des services en ligne qui font de même. Mais l'éditeur vous permet d'exécuter un tel script sans utiliser de services tiers et de "regarder youtube" sans lancer les scripts java de la page vidéo.
Les scripts écrits peuvent être enregistrés dans des fichiers et ces fichiers peuvent être «liés» (attribués) aux boutons de lancement rapide afin qu'ils puissent ensuite être lancés à partir de la fenêtre principale du navigateur par Alt + 1, Alt + 2 ... Alt + 0 sans ouvrir la fenêtre de l'éditeur de programme.
Travailler avec des formulaires
Lorsqu'un formulaire est rencontré dans des balises, le navigateur affiche le formulaire sous la forme d'un lien "Formulaire":

Lorsque vous appuyez dessus, une fenêtre spéciale s'ouvre qui affiche le contenu du formulaire (le formulaire de connexion pour mail.ru est affiché):

Si vous cochez la case «Mode avancé» en haut, vous pouvez voir le code du formulaire lui-même, et le bouton «Soumettre» n'enverra pas la page, mais préparera l'URL et (si nécessaire) les données POST pour l'envoi et les affichera dans les champs appropriés. Et vous pouvez les corriger manuellement, si nécessaire, et après avoir cliqué sur "Envoyer et partir" envoyer les données spécifiées au serveur.

Si vous cliquez sur le bouton "Créer un programme pour envoyer des données", un script sera créé qui définit l'URL actuelle et provoque l'envoi des données - c'est-à-dire, émuler la saisie de données sur une page Web dans un formulaire et l'envoyer.

Dans le même temps, les données POST sont également indiquées à l'intérieur de l'URL, mais sont séparées par un double point d'interrogation. C'est-à-dire single "?" Est GET, et double "??" Est un POST.
Un "lien" similaire pour envoyer les données du formulaire entrées en utilisant la méthode GET (avec un seul "?") Ou la méthode POST (avec un double "??") peut être obtenue en cliquant sur le bouton "Copier les données URL et POST dans le presse-papiers sous forme de lien" dans l'éditeur de formulaire .
Afficher des fichiers dans un navigateur
Après avoir téléchargé un fichier incompréhensible, vous devrez peut-être voir «ce qu'il y a à l'intérieur». Par conséquent, le navigateur dispose de trois modes de visualisation:
- en code HTML avec analyse et rendu (F12),
- sous forme de texte dans l'encodage Windows / DOS (Shift + F12),
- comme représentation hexadécimale avec des codes et du texte (Ctrl + F12).
Ils sont sélectionnés dans le menu ou les raccourcis clavier susmentionnés avec Shift / Ctrl + F12.

Si vous sélectionnez le thème MonoDOS / MonoDOS2 ou chargez une police DOS PCF (et activez la case à cocher «Codage DOS» dans le menu des polices PCF), ou sélectionnez le codage OEM_CHARSET avec n'importe quelle police, vous pouvez afficher les anciens fichiers texte avec des pseudo-graphiques directement dans le navigateur.

En utilisant Ctrl + F12, vous pouvez voir la représentation hexadécimale du fichier et, par exemple, à partir de l'en-tête pour comprendre ce que nous avons téléchargé ou apprendre comment il est organisé à l'intérieur, par exemple, un fichier exe d'un bloc-notes.

Conclusion
Il s'est avéré que créer un navigateur ne consiste pas seulement à écrire un analyseur. Ce navigateur manque encore beaucoup.
Par exemple, décompresser les données reçues du serveur. Par conséquent, par exemple, le site games.mail.ru ressemble à un ensemble d'octets aléatoires, car le site n'écoute pas et envoie des données compressées même lorsqu'on lui demande d'envoyer uniquement des données non compressées dans les en-têtes http.

De plus, le navigateur ne sait pas comment envoyer des fichiers dans des formulaires, il ne peut former que des données "application / x-www-form-urlencoded".
De plus, avec elle, vous n'irez pas sur des sites scriptés comme instagram. Il n'y aura que des scripts qui devraient charger le contenu.

Mais avec lui, vous pouvez lire des sites d'actualités et vous asseoir sur des forums, même sur une tablette faible et sur n'importe quel Windows (95, 98, 2k, XP, Vista, 7, 8, 10, bien que les sites HTTPS sur d'anciens Windows ne puissent pas échouer si des algorithmes comme SHA2 ne sont pas pris en charge par le système d'exploitation, car ils n'étaient pas connus au moment de son développement), téléchargez sélectivement des images et regardez-les immédiatement dans votre visionneuse d'images préférée, consultez les scripts du site Web et lisez parfois des commentaires amusants de leurs développeurs, surveillez les changements dans la structure du site Web (vous notez immédiatement qu'un bloc de publicité a été ajouté ou bannière ishny, si chaque jour la lecture du même portail de nouvelles).

(la césure n'a pas encore été délivrée).
Télécharger le test de référence
Il pèse environ 500 kilo-octets.
Vous pouvez télécharger le lien
blackstrip.ru/jc.zip