Web Development Knowledge Base
| |
Sections :
RSS Feed You too, please publish your useful code snippets in any programming language : write an article ! Plateforme d'envoi de gros fichiers en ligne Dépannage site web Blog infogérance Hébergement e-mail |
Olivier Ligny - - 13/03/2008 - vue 22502 fois
Protocole HTTP : exemples de dialogues client-serveur, avec méthodes GET et POSTVoici ci dessous quelques exemples concrets de dialogues client-serveur pour comprendre les bases du protocole HTTP. Exemple 1 : le client demande la page d'accueil du site Wikipedia.org (GET) Le navigateur ouvre une connexion au serveur Wikipedia et envoie la requête suivante : GET / HTTP/1.1 demande la page d'accueil (/) Host: www.wikipedia.org précise le nom du site concerné User-Agent: Mozilla/5.0 (X11; Linux i686; fr) Firefox/2.0.0.3 informe sur l'équipement du client Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 la connexion restera ouverte 300 secondes maximum avant fermeture auto Connection: keep-alive Réponse du serveur : HTTP/1.0 200 OK c'est bon, la page existe Date: Thu, 13 Mar 2008 17:46:50 GMT Server: Apache informe sur la config du serveur web X-Powered-By: PHP/5.2.1 Last-Modified: Fri, 7 Mar 2008 12:34:02 GMT communique la date de dernière modif de la page Content-Type: text/html; charset=utf-8 indique que les données vont être du code HTML encodé en UTF8 Content-Length: 57268 indique la taille des données en octets Connection: close ici, une ligne vide pour indiquer la fin des entêtes
Exemple 2 : le client envoie des données dans un formulaire (POST) Nous sommes sur la page d'accueil de CJoint.com, on remplit le formulaire en sélectionnant un fichier à uploader, accompagné d'un email et d'un message. Le navigateur ouvre une connexion au serveur et envoie la requête suivante avec toutes les données : POST /index.php HTTP/1.1 on envoie les données à la page index.php Host: www.cjoint.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.cjoint.com/ la ligne ci dessous indique où est la séparation entre les données Content-Type: multipart/form-data; boundary=---------------------------3857341673786882351875586239 Content-Length: 2003 on prévient qu'on va envoyer environ 2 Ko de données -----------------------------3857341673786882351875586239 une boundary (séparation) Content-Disposition: form-data; name="cmd" on envoie le champ 'cmd', sa valeur est 'rec' rec -----------------------------3857341673786882351875586239 une boundary (séparation) Content-Disposition: form-data; name="USERFILE"; filename="monimage.jpg" Content-Type: image/jpeg on envoie le champ USERFILE : on envoie le fichier monimage.jpg, La réponse du serveur : HTTP/1.1 302 Found tout va bien, données reçues Date: Thu, 13 Mar 2008 17:51:08 GMT Server: Apache/1.3.37 (Unix) mod_gzip/1.3.19.1a PHP/4.4.4 mod_ssl/2.8.28 OpenSSL/0.9.6m X-Powered-By: PHP/4.4.4 Location: confirm.php?cjoint=dnsZioTvyK redirection vers une page de confirmation Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html aucune autre donnée n'est envoyée puisqu'il s'agit d'une redirection 0
grave_r - - 26/06/2009
Merci infiniment pour ce topic (clair et joliment commenter) qui vient tout juste de sauver ma vie,merci encore!!!
KiKi - 25/06/2014
Merci pour ces explications très claires qui vont me faciliter l'écriture de ma routine.
|
Nos partenaires : iPhone 8 Cases & Protection |