Corde de question

Dans le World Wide Web , une corde de question de est la partie d'un URL qui contient des données à passer aux applications Web telles que des programmes de cgi .

Quand une page Web est demandée par l'intermédiaire du protocole de transfert hypertexte , le serveur localise un dossier dans son système de fichiers basé sur l'URL demandé . Ce dossier peut être un dossier régulier ou un programme. Dans le deuxième cas, le serveur peut (selon sa configuration) lancent le programme, envoyant son rendement comme la page required. La corde de question est une partie de l'URL qui est passé au programme. Son utilisation permet à des données d'être passées du client de HTTP (souvent un navigateur) au programme qui produit de la page Web.

Structure

Un URL typique contenant une corde de question est comme suit : http://server/path/program?query_string de

Quand un serveur reçoit une demande d'une telle page, il lance un programme (si configuré pour faire ainsi), passant le query_string sans changement au programme. Le point d'interrogation est employé comme séparateur et n'est pas une partie de la corde de question.

Un lien dans une page Web peut avoir un URL qui contient une corde de question. Cependant, l'utilisation principale des cordes de question est de contenir le contenu d'une forme de HTML, également connu sous le nom de forme de Web de . En particulier, quand une forme contenant les champs field1, field2, field3 est soumise, le contenu des champs est codé comme corde de question comme suit :

field1=value1&field2=value2&field3=value3 de

la corde de question se compose de série de paires de champ-valeur.
Les paires chacune de champ-valeur sont séparées par un signe égal .
La série de paires est séparée par l'esperluète , « et ».

Pour chaque champ de la forme, la corde de question contient un field=value de paires. Les formes de Web peuvent inclure les champs qui ne sont pas évidents à l'utilisateur ; ces champs sont inclus dans la corde de question quand la forme est soumise.

Cette le «  de nom puis le signe qu'égal évaluent alors alors le convention d'esperluète  » est une recommandation du W3C . Ils fournissent également encore une autre entrée d'annexe qui recommande l'utilisation d'un point-virgule au lieu d'une esperluète .

Techniquement, le contenu de forme est seulement codé comme corde de question quand la méthode de soumission de forme est OBTIENNENT. Le même codage est employé par défaut quand la méthode de soumission est POTEAU, mais le résultat n'est pas envoyé comme corde de question, c., n'est pas ajouté à l'URL d'action de la forme. En revanche, la corde est envoyée comme corps de la demande.

Codage d'URL

Quelques caractères ne peuvent pas faire partie d'un URL (par exemple, l'espace) et quelques autres caractères ont une signification spéciale dans un URL : par exemple, le caractère # est employé pour localiser un point dans une page ; le caractère = est employé pour séparer un nom d'une valeur. Une corde de question peut devoir être convertie pour satisfaire ces contraintes. Ceci peut être fait using un schéma connu sous le nom de codage d'URL de .

En particulier, le codage de la corde de question emploie les règles suivantes :
| « . » | « - » | « ~ » | le « _ » sont laissés réel
L'ESPACE est codé comme « + »
Tous autres caractères sont codés comme représentation hex de %FF avec tous les caractères non-ASCII d'abord codés comme UTF-8 (ou tout autre codage spécifique)

Le codage de l'ESPACE comme « + » et le choix du " ; comme-is" ; les caractères distingue ce codage de RFC 1738.

RFC

Comme défini dans RFC 1738, un URL de l'arrangement http peut contenir un searchpart de après le reste de l'URL et séparé de lui par un ? caractère de . RFC 3986 spécifie que le composant de question de d'un URI est la partie entre le ? et l'extrémité de l'URI ou du caractère #. La corde de question de de limite est d'utilisation commune pour se rapporter à la présente partie pour la caisse d'URL de HTTP.

Exemple

Si une forme est incluse dans une page de HTML comme suit : action=" de
type=" de type=" de type=" de

et l'utilisateur insère le &ldquo de cordes ; c'est un field&rdquo ; et &ldquo ; était-il clair (déjà) ? &rdquo ; dans les deux gisements des textes de et des presses que la soumission se boutonnent, le programme test.cgi recevra la corde suivante de question : first=this+is+a+field&second=was+it+clear+%28already%29%3F

Dans un certain UNIX - les web server basés le programme reçoit la corde de question comme variable d'environnement appelée QUERY_STRING

Cheminement

Un programme recevant une corde de question peut ignorer la partie ou tout le lui. Si l'URL demandé correspond à un dossier et pas à un programme, la corde de question de totalité est ignorée. Cependant, indépendamment de, que la corde de question soit employée ou pas, l'URL entier comprenant lui est stocké dans les fichiers de consignation de de serveur

Ces faits permettent à des cordes de question d'être employées pour dépister des utilisateurs en quelque sorte semblables à cela donné par les biscuits HTTP pour ceci pour travailler, chaque fois que l'utilisateur télécharge une page, une marque unique est choisis et supplémentaire pendant qu'une corde de question aux URL de toute lie la page contient. Dès que l'utilisateur suivra un de ces liens, l'URL correspondant est demandé au serveur. De cette façon, le téléchargement de cette page est liée avec la précédente.

Par exemple, quand une page Web contenant le suivant est demandée : href=" de see ma page ! href=" de mine est better

une corde unique, telle que sdfsd23423 est choisie, et la page est modifiée comme suit : href=" de html ? sdfsd23423" ; >see ma page ! href=" de mine est better

L'addition de la corde de question ne change pas la manière que la page est montrée à l'utilisateur. Quand l'utilisateur suit-il, par exemple, le premier lien, les demandes de navigateur la page frank.html ? sdfsd23423 au serveur, qui ignore ce qui suit le ? et envoie la page frank.html comme prévu, ajoutant la corde de question à ses liens aussi bien.

De cette façon, n'importe quelle demande de page suivante de cet utilisateur portera la même corde sdfsd23423 de question, permettant pour établir que toutes ces pages ont été regardées par le même utilisateur. Les cordes de question sont employées souvent en association avec les balises de Web de

Les différences principales entre les cordes de question utilisées pour dépister et les biscuits de HTTP sont celle : Les cordes de question font partie de l'URL, et sont donc incluses si l'utilisateur sauve ou envoie l'URL à un autre utilisateur ; des biscuits peuvent être maintenus à travers des sessions de lecture rapide, mais ne sont pas sauvés ou ne sont pas envoyés avec l'URL.

  • Si l'utilisateur arrive au même web server par deux (ou plus) chemins indépendants, il sera assigné deux cordes différentes de question, alors que les biscuits stockés sont identiques.

    Flexibilité contre la sécurité

    Une corde de question d'URL tient compte de la flexibilité en recherchant des données d'un web server et probablement de la base de données employée pour peupler des pages pour ce web server. Seulement un magasin lu de données, tel qu'un temps traçant le service, est un exemple où des cordes de question d'URL peuvent être employées avec la grande flexibilité.

    Dans quelques circonstances, une corde de question d'URL peut exposer des problèmes de sécurité parce qu'elle peut être éditée par un utilisateur pour rechercher des données qu'elles n'ont pas accès à. En particulier, une corde de question d'URL contenant un username et un mot de passe a pu être employée avec une attaque de dictionnaire de pour deviner aux qualifications valides d'ouverture à un site Web particulier.

    Voir également

    Protocole de transfert hypertexte
    Interface de passerelle commune
    Biscuit de HTTP de
    Balise de Web de
  • .

    Random links:Jeu ultimatum | Centre commercial d'Eastland | Konishi Yukinaga | Bhabua | Felo de se | Secuencia_de_la_pregunta