Aller au contenu

requête GET


clavie

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines plus tard...

Ç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

Lien vers le commentaire
Partager sur d’autres 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 ?

Lien vers le commentaire
Partager sur d’autres sites

  • 5 semaines plus tard...

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>

...

Lien vers le commentaire
Partager sur d’autres 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;)

Lien vers le commentaire
Partager sur d’autres 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 !!!

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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 ;)

Lien vers le commentaire
Partager sur d’autres 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 ?

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines plus tard...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...