Demander une page Internet - Protocole HTTP

in #fr7 years ago


mac-459196_1920.jpg
https://pixabay.com/en/mac-freelancer-macintosh-macbook-459196/

Lorsque vous vous connectez sur un site, nous avons directement, une page web qui s'affiche, mais que se passe t'il réellement au niveau de notre ordinateur. C'est ce que nous allons chercher à voir dans cet article. Nous allons dans un premier temps comprendre ce qu'est un protocole. Puis, nous allons voir ce qu'est le protocole HTTP.

Qu'est-ce qu'un protocole ?

Avant de rentrer directement dans le vif du sujet, il nous faut détailler ce qu'est un protocole. Un protocole est une série de règles établit entre deux machines permettant la communication. On pourrait dire que c'est comme un langage prédéfini entre deux personnes. Si deux machines n'utilisent pas le même protocole, ils ne peuvent pas communiquer entre eux. Pour imager, c'est comme si je souhaitai parler avec un chinois en français, la communication ne pourra pas se faire. En revanche, si nous utilisons le même protocole, l'anglais par exemple, la communication pourra se faire. Ainsi, les machines utilisent des protocoles de communication permettant de se comprendre entre eux.

Le protocole HTTP

Le protocole HTTP (Hypertext Transfert Protocol) permet la communication entre un client et un serveur. On utilise ce protocole afin d'accéder à une page Internet. Un serveur va posséder une page web et nous, en tant que client, souhaitons y avoir accès. Pour ce faire, nous allons réaliser une requête à ce serveur. Cette requête va être composée de :

  • Une commande, une url et de la version du protocole.
  • Un en-tête
  • Un corps de la requête

Les commandes du protocole HTTP

Ils existent plusieurs commandes, mais nous allons seulement nous intéresser au plus courantes :

  • HEAD : permet de demander des informations sur une ressource.
  • GET : permet de demander une ressource.
  • POST : permet la modification d'une ressource.
    La méthode GET, nous permet d'avoir accès à une ressource. C'est celle que nous allons utiliser afin de pouvoir avoir accès à une page web. La méthode POST est utilisée lorsque vous souhaitez réaliser une action sur un site. Par exemple, lorsque vous vous connectez sur Facebook, vous réalisez une méthode de type POST.

Qu'est-ce qu'une URL ?

Une URL (Uniform Ressource Locator) permet de nous indiquer une adresse. Elle se compose de plusieurs éléments, mais nous n'allons pas les détailler dans cet article. Ce qu'il faut savoir c'est qu'elle nous permet de savoir où se situe la ressource que nous cherchons à avoir. Nous retrouvons cette adresse dans la barre en haut de votre navigateur.

  • Exemple d'une URL : https://steemit.com/
    Ici, je souhaite avoir la page d'accueil pour le domaine "steemit.com".

Les informations présentes dans l'en-tête

Dans l'en-tête, nous allons avoir plusieurs informations comme :

  • Host : Spécifie le nom de domaine (Exemple : "steemit.com").
  • Connection : le type de connexion que nous allons avoir :
    • Close : indique que la connexion sera fermée après la réponse.
    • Keep-Alive : indique que la connexion sera persistante..
  • Content-Type : indique le type du corps de la requête.
  • Content-Length : indique la longueur du corps de la requête.

Le corps de la requête

En fonction de la requête, nous allons avoir un corps différent. Dans le cas où l'on demande une page internet, on y retrouve le code source de la page. Lorsque nous réalisons, par exemple, une recherche à l'aide d'un formulaire, nous retrouvons les paramètres dans le corps de ce message.

Exemple de requête

Passons à la pratique. Pour visualiser une requête, vous avez plusieurs possibilités. La première, à l'aide de votre navigateur. Pour cela, il vous suffit d'ouvrir le mode développeur et d'aller dans la partie réseau.


Screenshot from 2018-07-15 15-19-05.png
Illustration d'une requête visualisée à l'aide du mode développeur sur Firefox.

Sinon, vous pouvez aussi le visualiser à l'aide d'un terminal. Sous Linux :
curl -i www.google.com

HTTP/1.1 200 OK
Date: Sun, 15 Jul 2018 13:15:42 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Accept-Ranges: none
Vary: Accept-Encoding
Transfer-Encoding: chunked


"<!doctype html><html ..."


Pour résumer, le protocole HTTP vous permet d'avoir accès à une ressource qui se trouve sur un site internet. Vous réalisez ce genre de requête à chaque fois que vous souhaitez avoir accès à un site. Merci pour votre temps de lecture, n'hésitez pas à donner votre avis dans les commentaires.

Pour aller plus loin :

Sort:  

Tient au fait, à ton avis, que devrait-on voir dans la requête POST faisant suite à une demande d'authentification sur steemit.com ? ;)

Après une requête POST, nous allons reçevoir un code retour du serveur. Si tu veux plus de détail, tu peux aller lire la documentation : https://tools.ietf.org/html/rfc7231#section-4.3.3
Concernant Steemit, je ne me suis pas renseigner sur leur fonctionnement, par contre j'ai vu qu'il utilisait un système d'authentification OAuth 2 (peut-être que je me trompe https://github.com/steemit/steemconnect/wiki/OAuth-2). Si c'est bien ce type de fonctionnement, tu recevras en sortie un token. Pour plus de détail, je t'invite à aller voir : https://zestedesavoir.com/articles/1616/comprendre-oauth-2-0-par-lexemple/

Ahah je te parle de steemit et pas de steemconnect (busy - sur le repo github steemit à fork).
Non non, ici en pratique ce qu'il passe dans la requête POST (les informations contenues) lors de l'authentification.

Mais je te rassure, en fait, j'ai la réponse, c'était juste pour piquer ta curiosité :D

Excuse-moi dans ce cas. Si tu as des points que tu souhaites ajouter à l'article n'hésite pas. Je suis loin de tout savoir =)

Non ton article est complet.
Je vais poser la question (qui est lié au fonctionnement de steem).
Est-ce que tu envoies ta clef au serveur lors de la phase de la phase d’authentification ?

Autrement dit ? Comment steemit arrive à t’authentifier ? (tu peux utiliser f12 ;) )

Je ne connais pas le fonctionnement réel. En revanche d'après ce que je constate, nous réalisons une première requête nous permettant d'obtenir les informations liées au nom de l'utilisateur. Puis, je suppose que nous allons signer ces éléments avec notre clé que nous avons renseigner dans le champs notre mot de passe. À partir de là, l'api va comparer la signature que nous avons réaliser. Si elle correspond, alors cela veut dire que c'est bien nous le propriétaire de ce compte. Sinon non.

Merci pour ce post et ces explications ! J'ai moi-même un site web, mais j'utilise un template. Je dois avouer que c'est un domaine que je ne capte pas lol Avec ton article je comprends mieux :)

Merci pour ton retour =) Ici, je reste sur la communication qui se passe entre un client et un serveur. J'essayerai dans un prochain article d'expliquer la composition d'une page web.

Congratulations @rerere! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

You got a First Reply
You published a post every day of the week

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:
SteemitBoard World Cup Contest - Final results coming soon

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Excellent article. N'hésite pas à utiliser les tag #francostem et/ou #steemstem pour tes articles parlant de Science, Technologie, Ingénierie ou Medecine (STEM). ;)

Merci, je mettrais ces catégories pour les prochains articles du même thème.

Coin Marketplace

STEEM 0.17
TRX 0.24
JST 0.034
BTC 96422.40
ETH 2763.88
SBD 0.67