Bonjour tout le monde,
Peut on envoyer plusieurs requêtes http avec une seule socket ?
Bonjour tout le monde,
Peut on envoyer plusieurs requêtes http avec une seule socket ?
Bien sûr.
Une socket est comme un fichier, si ce n'est que ce que tu écris est envoyé sur le réseau plutôt que le disque dur.
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
Ok, merci beaucoup.
S'il vous pliait vous avez un tuto la dessus?
Si tu te positionnes du point de vue du socket en particulier, alors oui, tu peux faire transiter n'importe quoi dedans. Quand tu l'ouvres, tu spécifies le protocole de transport à utiliser, en général TCP/IP donc. Par contre, la nature des données qu'il charie, elle, reste purement privée. La communication se comporte comme un appel téléphonique et si ça te chante d'envoyer plusieurs requêtes à travers le même tuyau, rien ne t'en empêche.
Si tu te places au point de vue de HTTP en particulier (qui en soi pourrait être transporté par autre chose que TCP/IP même si ce n'est pour ainsi dire jamais le cas), la réponse est « maintenant, oui ».
Initialement, HTTP était fait pour servir des pages de texte uniquement et les connexions étaient immédiatement refermées après la transmission de la page demandée. Quand on a commencé à y intégrer des images, on y a fait référence avec des liens hypertextes ordinaires et celles-ci étaient considérées (à juste titre) comme des éléments distincts. Les premiers navigateurs étaient mêmes équipés d'un bouton « images » (voir par exemple ici) pour demander à les charger s'ils n'étaient pas configurés par l'utilisateur pour le faire automatiquement (c'était lourd à travers les modems de l'époque).
Aujourd'hui, les pages web sont toutes massivement « multi-média » dans le sens où elles sont aujourd'hui presque toutes composées d'un document HTML, d'une CSS, d'un certain nombre d'images en tous genres, qu'elles soient minuscules (icônes, smileys, éléments de bordures, etc.) ou très larges (photos, arrière-plans panoramiques), de Javascript et d'objets divers comme les animations flash. Ça fait tout un tas de fichiers distincts à télécharger à chaque fois et on a assez vite compris qu'il était idiot d'encombrer le serveur avec des re-connexions incessantes à chaque fois. Non seulement ça engorge le serveur mais c'est pénalisant pour les statistiques car chaque appel représente un hit distinct alors qu'il s'agit en réalité du chargement de la même page à chaque fois.
En HTTP/1.0, on avait donc introduit « Connexion: keep-alive » pour indiquer au navigateur client que la connexion serait maintenue ouverte en fin de session pour lui permettre de renvoyer une nouvelle requête après avoir reçu le résultat de la première. Ce maintien était cependant très fugace : la connexion ne restait ouverte qu'une à deux secondes parce qu'on s'adressait à des navigateurs qui n'étaient pas forcément faits pour, et il appartenait alors au serveur de refermer normalement la connexion. En HTTP/1.1, la connexion est maintenant considérée keep-alive par défaut.
Tu peux donc enchaîner tes requêtes en HTTP/1.1 mais parfois, le serveur les limite aux fichiers qui constituent la page.
Pour un bon tutoriel sur les sockets, voir ce tutoriel : http://broux.developpez.com/articles/c/sockets/
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