Jump to content
Sign in to follow this  
clavie

requête GET

Rate this topic

Recommended Posts

Savez-vous quelle requête génère un navigateur (IE, Firefox, ec) pour obtenir une page internet quelconque ?

l'exemple suivant ne marche pas à tous les coups, que manque-t-il ? certains serveurs attendent-ils une identification de la part du navigateur ?

GET http://www.xxx.fr HTTP/1.1

Host: www.xxx.fr

Share this post


Link to post
Share on other sites

Quand tu cliques sur un lien, par defaut c'est du GET, un fomulaire par defaut c'est du POST. De quel exemple parles-tu ?

Share this post


Link to post
Share on other sites

lorsqu'un navigateur (IE par exemple) accède à la page : www.lemonde.fr

quel est le texte de la requête HTTP générée ?

est-ce simplement :

GET http://www.lemonde.fr HTTP/1.1

ou quelque chose de plus complet ? (identification du navigateur etc).

Share this post


Link to post
Share on other sites

Il peux y avoir plein de choses :

- Adresse de la page demandée (seul élément obligatoire)

- La page référer (par exemple, le script de mail de free se base sur cette info pour savoir à qui envoyer le mail)

- Le navigateur (ou adresse du robot, par exemple, googlebot)

- Le contenu des cookies associés à l'adresse se trouvant sur le PC de l'utilisateur

- Le type d'encodage supporté par le navigateur

- Le langage favoris du navigant

- les formats de fichiers acceptés...

Certains sites refusent les requêtes incomplètes (par exemple, qui ne spécifient pas le navigateur) afin de se protéger des aspirateurs...

Tizel

Share this post


Link to post
Share on other sites

justement, il peut y avoir plein de choses.

j'aimerais savoir quelle est le texte complet d'une requête générée par un navigateur standard (comme Internet Explorer) pour être sûr d'obtenir la page demandée.

peut-on avoir un exemple complet ?

merci.

Share this post


Link to post
Share on other sites

Ça donne quelque chose comme ça...

GET / HTTP/1.1
Host: www.lemonde.fr
User-Agent: ...
Accept: text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr;q=0.8,fr-fr;q=0.6,en;q=0.4,en-us;q=0.2
Accept-Encoding: ... (gzip,deflate...)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: ...

Et probablement pas mal d'autres choses. Logiquement la seule chose vraiment indispensable c'est

GET /chemin/de/la/page/ HTTP/1.1

(mais il faudrait vérifier) ;)

Ce que tu as faux c'est que la requête GET ne contient pas le nom de l'hôte, elle ne se fait que si la connexion à l'hôte est déjà faite, elle ne contient donc que le chemin de la page :P

Share this post


Link to post
Share on other sites

Merci Xavier,

la seule requête : GET /chemin/de/la/page/ HTTP/1.1

marche pour certaines pages, mais certains sites ne l'acceptent pas et renvoient des messages d'erreur, notamment des blogs ou des adresses de fils RSS.

Je n'y connais pas grand-chose en HTTP, comment savoir quelle est la requête exacte formulée par le navigateur Internet Explorer par exemple ? As-tu un exemple complet, ou bien sais-tu comment en obtenir un ?

Share this post


Link to post
Share on other sites

Pour Firefox, il existe l'extension LiveHTTP Headers de laquelle j'ai extrait ce que j'ai dit plus haut.

Tu pourrait nous donner un exemple, avec la requête que tu envoie, l'hôte et la réponse (erreur) ?

Share this post


Link to post
Share on other sites

je vais consulter cette extension.

je vous donne un exemple qui marche et un qui ne marche pas.

savez-vous quelle requête marcherait pour www.lemonde.fr ?

GET http://www.lefigaro.fr HTTP/1.1

host: www.lefigaro.fr

****** un exemple qui marche, le résultat :

HTTP/1.1 200 OK

Date: Wed, 31 Aug 2005 00:29:26 GMT

Server: Apache/1.3.33 (Unix) PHP/4.2.2

Last-Modified: Tue, 30 Aug 2005 19:28:28 GMT

ETag: "44644-15d80-4314b35c"

Accept-Ranges: bytes

Content-Length: 89472

Content-Type: text/html

<!--sdvD=header_htdig-->

<HTML><HEAD>

<!--sdvD=head-->

<!--fig:file/lefigaro/skul/edition/head.sk-->

... et tout le reste de la page.

****** Un exemple qui ne marche pas :

GET http://www.lemonde.fr HTTP/1.1

host: www.lemonde.fr

****** le résultat :

HTTP/1.1 404 Not Found

Server: Apache

X-Auth-Control: mod_auth_lemonde

Content-Type: text/html

Content-Length: 7612

Date: Wed, 31 Aug 2005 00:40:47 GMT

Connection: keep-alive

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Le Monde.fr : Page non trouvée</title>

<link rel="stylesheet" type="text/css" href=&quot;http://medias.lemonde.fr/mmpub/css/commun-gr.css">

<link rel="stylesheet" type="text/css" href=&quot;http://medias.lemonde.fr/mmpub/css/commun.css">

<link rel="stylesheet" type="text/css" href=&quot;http://medias.lemonde.fr/mmpub/css/www.css">

</head>

...

Share this post


Link to post
Share on other sites

Merci Xavier, j'ai téléchargé l'extension qui permet de lire le texte des requêtes sous firefox. ça me sera très utile. je ferai des essais demain.

Share this post


Link to post
Share on other sites
****** Un exemple qui ne marche pas :

GET http://www.lemonde.fr HTTP/1.1

host: www.lemonde.fr

<{POST_SNAPBACK}>

Comme dit et redit et re-redit dans ce sujet, ta requête est fausse. En l'occurence, tu appelles la page [b]http://www.lemonde.fr/http://www.lemonde.fr (oui oui, tu as bien vu, deux fois le nom de l'hôte collé, donc une page http://www.lemonde.fr à l'intérieur même du site du monde) qui bien entendu n'existe pas !

Si la première fonctionne, c'est uniquement parce que la page [b]http://www.lefigaro.fr/http://www.lefigaro.fr'>]http://www.lefigaro.fr/http://www.lefigaro.fr redirige vers [b]http://www.lefigaro.fr/ (parce qu'ils n'ont pas de page d'erreur 404, c'est donc de la pure chance pour toi.)

Ta requête doit donc être

GET / HTTP/1.1

host: www.lemonde.fr

ou
GET / HTTP/1.1

host: www.lefigaro.fr

C'est clair ? Avec / tu appelles la racine du site, autrement dit la page index.

Dans GET tu ne dois pas répéter le nom de l'hôte. Uniquement le chemin à l'intérieur du site lui-même. Ainsi pour avoir la page [b]http://www.lemonde.fr/mapage.html tu dois avoir la requête suivante :

GET /mapage.html HTTP/1.1
host: www.lemonde.fr

Ne pas remettre le nom de l'hôte dans Get. Et au passage ne pas oublier le / au début pour être sûr d'appeler la page depuis la racine (je ne sais pas si les serveurs acceptent autre chose d'ailleurs...)

C'est bon cette fois ? Je dois le redire encore ? Je vais finir par me lasser à force :P;)

Share this post


Link to post
Share on other sites

oui, oui. thanks.

j'ai finalement compris. je me basais sur un exemple donné sur un site explicatif de HTTP, et évidemment faux.

et comme cela marchait pour certains sites (en fait, ne traitant pas l'erreur 404), j'étais persuadé que l'erreur provenait de la nécessité d'une identification du navigateur.

l'extension firefox est précieuse pour observer les requêtes et leurs résultats.

merci !!!

Share this post


Link to post
Share on other sites

la requête fonctionne normalement, sauf pour le site www.blogspirit.com

La requête GET ne donne aucune réponse (pas même de message d'erreur, rien).

et pourtant, je tente la même requête que celle indiquée dans l'extension de Firefox (qui lui, obtient la page demandée).

GET / HTTP/1.1

Host: www.blogspirit.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6

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

Quelqu'un a une idée ?

merci.

Share this post


Link to post
Share on other sites

Tu ne reçois rien ? Du tout ? Vraiment rien ?

Logiquement tout serveur devrait répondre aux requêtes. S'il ne le fait pas, c'est qu'il est indisponible :P

Je soupçonne que ce soit ton script/robot/... qui ne soit pas capable d'interpréter la réponse. En effet, il y a une redirection :

Location: http://www.blogspirit.com/fr/index.php

Donc il y a réponse mais effectivement pas de page transférée ;)

Share this post


Link to post
Share on other sites

Non, pas de réponse du tout.

J'envoie la commande à l'aide d'un langage de programmation qui ouvre un flux lorsque la connection est établie. Mais le flux est vide. rien à lire. alors que le serveur n'est pas indisponible.

C'est la même chose lorsque je demande une page dont je connais l'adresse exacte (non transférée).

Le serveur ne répond pas à ma requête.

J'ai depuis un indice. J'utilise une connection free, et parait-il, blogspirit a des problèmes avec les connections free. problème de proxy ... mais je n'y connais rien. Ca te dit quelque chose ?

Share this post


Link to post
Share on other sites

Bonjour,

En passant par l'analyseur d'entêtes http des outils du Hub on voit effectivement la redirection ;)

URL: http://www.blogspirit.com/

HTTP/1.1 302 Found

Date: Thu, 08 Sep 2005 13:46:34 GMT

Server: Apache

Vary: Host

Set-Cookie: PHPSESSID=bc37f4e30052e7186a879a6dcc222301; path=/

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Set-Cookie: lang=en; expires=Thu, 08 Sep 2005 14:46:34 GMT; path=/; domain=.blogspirit.com

Location: http://www.blogspirit.com/en/index.php

Connection: close

Content-Type: text/html; charset=utf-8

Redirection vers :

URL: http://www.blogspirit.com/en/index.php

HTTP/1.1 200 OK

Date: Thu, 08 Sep 2005 13:46:34 GMT

Server: Apache

Vary: Host

Set-Cookie: PHPSESSID=fea1cf448cb769d2c9d1c708ae866500; path=/

Expires: Thu, 08 Sep 2005 13:56:36 GMT

Cache-Control: max-age=600, must-revalidate

Pragma: public

Set-Cookie: lang=en; expires=Thu, 08 Sep 2005 14:46:34 GMT; path=/; domain=.blogspirit.com

ETag: 6a88889219261c7c915ee681af09a027

Content-Length: 11616

Connection: close

Content-Type: text/html; charset=utf-8

Share this post


Link to post
Share on other sites

D'accord, il y a une indirection. Cependant, ce n'est pas le problème.

Etant donné que le serveur ne répond rien, je n'ai pas la réponse.

Si je demande la page sans indirection, c'est pareil, pas de réponse à la requête :

GET /en/index.php HTTP/1.1

Host: www.blogspirit.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...