Demandes Post et Get, quelle est la différence entre elles, laquelle est la meilleure et à quelles fins ? Apprendre à travailler avec les requêtes GET et POST

1. Protocole HTTP. Introduction

Je voudrais tout de suite clarifier une petite chose. Le terrible mot protocole n'est rien de plus qu'un accord de nombreuses personnes, juste à un moment donné, les gens ont décidé : « Faisons-le ainsi, et alors tout ira bien. Il n’y a rien à craindre, tout est tout simplement scandaleux et nous allons maintenant révéler cette honte. Alors, qu’est-ce que le protocole HTTP et à quoi sert-il ?

1.1 Client et serveur

Il n’y a pas de miracles dans le monde, et surtout dans le monde de la programmation et d’Internet ! Acceptez cela comme une vérité inébranlable. Et si le programme ne fonctionne pas ou ne fonctionne pas comme souhaité, il est fort probable qu'il soit mal écrit ou qu'il contienne des erreurs. Alors, comment le navigateur demande-t-il au serveur de lui envoyer quoi que ce soit ? Oui, très simple ! Vous avez juste besoin de vous détendre un peu et de commencer à profiter du processus :-)

1.2. Écrire notre première requête HTTP

Si vous pensez que tout est trop compliqué, vous vous trompez. L'homme est conçu de telle manière qu'il n'est tout simplement pas capable de créer quelque chose de complexe, sinon il s'y confondra lui-même :-) Donc, il y a un navigateur et il y a un serveur Web. Le navigateur est toujours l'initiateur de l'échange de données. Un serveur Web n'enverra jamais simplement quelque chose à quelqu'un pour qu'il envoie quelque chose au navigateur - le navigateur doit le demander. La requête HTTP la plus simple pourrait ressembler à ceci :


OBTENIR http : //www.php.net/ HTTP/1.0rnrn


* GET (traduit de l'anglais signifie « get ») - le type de requête, le type de requête peut être différent, par exemple POST, HEAD, PUT, DELETE (nous en examinerons certains ci-dessous).
* http://www.php.net/ - URI (adresse) à partir de laquelle nous souhaitons recevoir au moins certaines informations (naturellement, nous espérons connaître la page HTML).
* HTTP/1.0 - le type et la version du protocole que nous utiliserons pour communiquer avec le serveur.
* rn - la fin de la ligne, qui doit être répétée deux fois, pourquoi cela deviendra clair un peu plus tard.

Tu peux faire cette demande très simple. Exécutez le programme telnet.exe, entrez www.php.net comme hôte, spécifiez le port 80 et tapez simplement cette demande en appuyant deux fois sur Entrée comme rnrn. En réponse, vous recevrez du code HTML page d'accueil site www.php.net.

1.3 Structure de la demande

Voyons en quoi consiste une requête HTTP. Tout est assez simple. Commençons par le fait qu'une requête HTTP est un texte tout à fait significatif. En quoi cela consiste-t-il dans le cas général ? Nous considérerons le protocole HTTP 1.0. Donc :


Ligne de demande [Général - En-tête | Demande - En-tête | Entité - En-tête ] rn [ Entité - Corps ]


* Request-Line - ligne de demande
*

Format : "Méthode Request-URI HTTP-Versionrn"
* Méthode -
la méthode par laquelle la ressource Request-URI sera traitée peut être GET, POST, PUT, DELETE ou HEAD.
* Request-URI - relatif ou référence absolue vers une page avec un ensemble de paramètres, par exemple /index.html ou http://www.myhost.ru/index.html ou /index.html?a=1&b=qq. Dans ce dernier cas, le serveur recevra une requête avec un ensemble de variables a et b avec les valeurs correspondantes, et le signe « & » - une esperluette - sert de séparateur entre les paramètres.
* HTTP-Version - version du protocole HTTP, dans notre cas "HTTP/1.0".

Nous sommes extrêmement intéressés par les méthodes de traitement GET et POST. Avec la méthode GET, vous pouvez simplement transmettre des paramètres au script, et avec la méthode POST, vous pouvez émuler la soumission d'un formulaire.

Pour la méthode GET, l'URI de requête peut ressembler à ceci : "/index.html?param1=1¶m2=2".

* General-Header - la partie principale de l'en-tête.
Format:
Ne peut avoir que deux paramètres : Date ou Pragma. Date - Date de Greenwich au format « Jour de la semaine, Jour Mois Année HH:MM:SS GMT », par exemple « Mar 15 novembre 1994 08:12:31 GMT » - date de création de la demande. Pragma peut avoir une seule valeur sans cache, ce qui désactive la mise en cache des pages.

* Request-Header - partie de l'en-tête qui décrit la demande.

Request-Header peut avoir les paramètres suivants : Autoriser, Autorisation, De, Si-Modifié-Depuis, Référent, Agent Utilisateur.
Dans ce chapitre, nous ne considérerons pas le paramètre Authorization, car il est utilisé pour accéder à des ressources privées, ce qui n'est pas très souvent nécessaire. Vous pouvez apprendre à créer vous-même un en-tête d'accès autorisé sur www.w3c.org.

* Autoriser - définit les méthodes de traitement acceptables.
Format : "Autoriser : GET | HEADn".
Le paramètre est ignoré lors de la spécification de la méthode de traitement POST dans Request-Line. Spécifie les méthodes de traitement des demandes acceptables. Les serveurs proxy ne modifient pas le paramètre Allow et celui-ci atteint le serveur inchangé.

* Depuis - adresse e-mail qui a envoyé la demande.
Format : "De : adderssrn".
Par exemple, « De : [email protégé]".

* If-Modified-Since - indique que la requête n'a pas été modifiée depuis tel ou tel moment.
Format : « Si-Modifié-Depuis : datern »
Utilisé uniquement pour la méthode de traitement GET. La date est spécifiée en GMT dans le même format que pour le paramètre Date dans le General-Header.

* Référent - un lien absolu vers la page à partir de laquelle la demande a été initiée, c'est-à-dire un lien vers la page à partir de laquelle l'utilisateur est arrivé sur la nôtre.
Format : "Référent : URL".
Exemple : « Référent : www.host.ru/index.htmln ».
* Agent utilisateur - type de navigateur.
Par exemple : « Agent utilisateur : Mozilla/4.0n »

* Entity-Header - partie de l'en-tête qui décrit les données Entity-Body.
Cette partie de la requête spécifie les paramètres qui décrivent le corps de la page. Entity-Header peut contenir les paramètres suivants : Allow, Content-Encoding, Content-Length, Content-Type, Expires, Last-Modified, extension-header.

* Autoriser - un paramètre similaire à Autoriser de l'en-tête général.

* Content-Encoding - Type d'encodage des données Entité-Corps.
Format : "Encodage de contenu : x-gzip | x-compress | autre type".
Exemple : « Content-Encoding : x-gzipn ». Le caractère "|" désigne le mot « ou », c'est-à-dire ceci ou cela ou cela, etc.
Un autre type peut indiquer comment les données sont codées, par exemple pour la méthode POST : "Content-Encoding: application/x-www-form-urlencodedn".

* Content-Length - le nombre d'octets envoyés à l'Entity-Body. La valeur Content-Length a une signification complètement différente pour les données envoyées au format MIME, où elle agit comme un paramètre pour décrire une partie des données - "externe/entité-corps". Les nombres valides sont des entiers à partir de zéro.
Exemple : « Longueur du contenu : 26457n ».

* Content-Type - type de données transmises.
Par exemple : "Content-Type : text/htmln".

* Expire - Heure à laquelle la page doit être supprimée du cache du navigateur.
Format : « Expire : daté ». Le format de date est le même que celui du paramètre Date de General-Header.

* Dernière modification - heure dernier changement données envoyées.
Format : "Dernière modification : datée". Le format de date est le même que celui du paramètre Date de General-Header.

* Extension-header - partie de l'en-tête, qui peut être destinée, par exemple, à être traitée par un navigateur ou un autre programme qui reçoit le document. Dans cette partie, vous pouvez décrire vos paramètres au format "ParameterName: Parametervaluen". Ces paramètres seront ignorés si le programme client ne sait pas comment les traiter.
Par exemple : « Cookie : r=1rn » - définit les cookies connus pour la page.

Et maintenant, après des paroles aussi terribles, essayons de nous calmer un peu et de comprendre de quoi nous avons besoin ? Naturellement, nous comprendrons avec des exemples.

Imaginons que nous devions obtenir une page du site en passant des cookies, sinon nous serons simplement envoyés comme invités non invités, et de plus, on sait que vous n'êtes autorisé à accéder à cette page qu'après avoir visité la page principale du site.

2 Méthode GET

Écrivons notre demande.


OBTENIR http :
Hébergeur : www. site. courir

Cookie : revenu = 1rn
rn


Cette requête nous indique que nous souhaitons obtenir le contenu de la page http://www.site.ru/news.html en utilisant la méthode GET. Le champ Hôte indique que cette page se trouve sur le serveur www.site.ru, le champ Référent indique que nous sommes venus chercher des nouvelles de la page principale du site, et le champ Cookie indique qu'on nous a attribué tel ou tel cookie. Pourquoi les champs Hôte, Référent et Cookie sont-ils si importants ? Parce que les programmeurs normaux, lors de la création de sites dynamiques, vérifient les champs de données qui apparaissent dans les scripts (y compris PHP) sous forme de variables. À quoi ça sert? Afin, par exemple, d'éviter que le site ne soit cambriolé, c'est-à-dire ils n'ont pas configuré de programme pour le téléchargement automatique, ou pour qu'une personne visitant le site y accède toujours uniquement à partir de la page principale, etc.

Imaginons maintenant que nous devions remplir les champs du formulaire sur la page et envoyer une demande à partir du formulaire, qu'il y ait deux champs dans ce formulaire : login et mot de passe (login et mot de passe) - et, bien sûr, nous connaissons le login et mot de passe.


OBTENIR http : //www.site.ru/news.html?login=Petya%20Vasechkin&password=qq HTTP/1.0rn
Hébergeur : www. site. courir
Référent : http : //www.site.ru/index.htmlrn
Cookie : revenu = 1rn
rn


Notre identifiant est "Petya Vasechkin" Pourquoi devrions-nous écrire Petya%20Vasechkin ? Ceci est dû au fait Symboles spéciaux peuvent être reconnus par le serveur comme des signes de la présence d'un nouveau paramètre ou de la fin d'une requête, etc. Par conséquent, il existe un algorithme pour coder les noms des paramètres et leurs valeurs afin d'éviter les situations d'erreur dans la requête. Description complète Cet algorithme peut être trouvé ici, et PHP possède les fonctions rawurlencode et rawurldecode pour l'encodage et le décodage respectivement. Je voudrais noter que PHP effectue le décodage lui-même si des paramètres codés ont été transmis dans la requête. Ceci conclut le premier chapitre de ma connaissance du protocole HTTP. Dans le prochain chapitre, nous examinerons la création de requêtes comme POST (traduit de l'anglais par « envoyer »), qui sera beaucoup plus intéressante, car exactement ce type request est utilisé lors de l’envoi de données à partir de formulaires HTML.

3. Méthode POST.

Dans le cas d'une requête HTTP POST, il existe deux options pour transférer des champs à partir de formulaires HTML, à savoir l'utilisation des algorithmes application/x-www-form-urlencoded et multipart/form-data. Les différences entre ces algorithmes sont assez significatives. Le fait est que le premier type d'algorithme a été créé il y a longtemps, alors que le langage HTML ne prévoyait pas encore la possibilité de transférer des fichiers via des formulaires HTML. Examinons donc ces algorithmes avec des exemples.

3.1 Type de contenu : application/x-www-form-urlencoded.

Nous écrivons une requête similaire à notre requête GET pour transférer le login et le mot de passe, qui a été abordée dans le chapitre précédent :


POST http : //www.site.ru/news.html HTTP/1.0rn
Hébergeur : www. site. courir
Référent : http : //www.site.ru/index.htmlrn
Cookie : revenu = 1rn
Contenu - Type : application / x - www - formulaire - urlencodedrn
Contenu - Durée : 35mn
rn


Nous voyons ici un exemple d'utilisation des champs d'en-tête Content-Type et Content-Length. Content-Length indique combien d'octets la zone de données occupera, qui est séparée de l'en-tête par un autre saut de ligne rn. Mais les paramètres qui étaient auparavant placés dans le Request-URI pour une requête GET sont désormais dans le Entity-Body. On voit qu'ils se forment exactement de la même manière, il suffit de les écrire après le titre. Je veux souligner encore une chose point important, rien n'empêche, simultanément à l'ensemble des paramètres dans l'Entity-Body, de placer des paramètres avec d'autres noms dans le Request-URI, par exemple :


POST http : //www.site.ru/news.html?type=user HTTP/1.0rn
.....
rn
login = Petya % 20Vasechkin & mot de passe = qq


3.2 Type de contenu : multipart/form-data

Dès que le monde Internet a compris qu'il serait intéressant d'envoyer des fichiers via des formulaires, le consortium W3C s'est mis à affiner le format de requête POST. À cette époque, le format MIME (MultiPurpose Internet Mail Extensions - extensions de protocole multi-usages pour la création Messages électroniques), donc, pour ne pas réinventer la roue, nous avons décidé d'utiliser une partie de ce format de génération de messages pour création d'un POST requêtes dans le protocole HTTP.

Quelles sont les principales différences entre ce format et le type application/x-www-form-urlencoded ?

La principale différence est que l'Entité-Corps peut désormais être divisée en sections séparées par des frontières (limite). Ce qui est le plus intéressant, c'est que chaque section peut avoir son propre en-tête pour décrire les données qui y sont stockées, c'est-à-dire en une seule requête, vous pouvez transférer des données de différents types (comme dans Lettre postale Vous pouvez transférer des fichiers simultanément avec du texte).

Alors, commençons. Reprenons le même exemple avec le transfert du login et du mot de passe, mais maintenant dans un nouveau format.


POST http : //www.site.ru/news.html HTTP/1.0rn
Hébergeur : www. site. courir
Référent : http : //www.site.ru/index.htmlrn
Cookie : revenu = 1rn

Contenu - Durée : 209rn
rn
-- 1BEF0A57BE110FD467Arn
Contenu - Disposition : forme - données ; nom = "login" rn
rn
Petya Vasechkinrn
-- 1BEF0A57BE110FD467Arn
Contenu - Disposition : forme - données ; nom = "mot de passe" rn
rn
qqrn
-- 1BEF0A57BE110FD467A -- rn


Comprenons maintenant ce qui est écrit. :-) J'ai délibérément mis en évidence certains caractères rn en gras afin qu'ils ne se confondent pas avec les données. Si vous regardez attentivement, vous remarquerez le champ limite après Content-Type. Ce champ spécifie le séparateur de section - bordure. Une chaîne composée de lettres et de chiffres latins, ainsi que de quelques autres symboles (malheureusement, je ne me souviens plus lesquels) peut être utilisée comme bordure. Dans le corps de la requête, « -- » est ajouté au début de la limite, et la requête se termine par une limite à laquelle les caractères « -- » sont également ajoutés à la fin. Notre demande comporte deux sections, la première décrit le champ de connexion et la seconde décrit le champ du mot de passe. Content-Disposition (le type de données dans la section) indique qu'il s'agira de données du formulaire et le champ de nom spécifie le nom du champ. C'est là que se termine l'en-tête de section et ce qui suit est la zone de données de section dans laquelle la valeur du champ est placée (pas besoin d'encoder la valeur !).

Je voudrais attirer votre attention sur le fait que vous n'avez pas besoin d'utiliser Content-Length dans les en-têtes de section, mais dans l'en-tête de la requête, vous devriez le faire et sa valeur est la taille de l'intégralité du corps d'entité, qui apparaît après le deuxième rn. Longueur du contenu suivante : 209rn. Ceux. Entity-Body est séparé de l'en-tête par un saut de ligne supplémentaire (qui peut également être vu dans les sections).

Écrivons maintenant une demande de transfert d'un fichier.


POST http : //www.site.ru/postnews.html HTTP/1.0rn
Hébergeur : www. site. courir
Référent : http : //www.site.ru/news.htmlrn
Cookie : revenu = 1rn
Type de contenu : multipart/form-data ; limite = 1BEF0A57BE110FD467Arn
Contenu - Durée : 491rn
rn
-- 1BEF0A57BE110FD467Arn
Contenu - Disposition : forme - données ; nom = "news_header" rn
rn
Exemple d'actualité
-- 1BEF0A57BE110FD467Arn
Contenu - Disposition : forme - données ; nom = "fichier_actualités" ; nom de fichier = "news.txt" rn
Contenu - Type : application / octet - streamrn
Contenu - Transfert - Encodage : binairern
rn
Voici les nouvelles, qui est dans le fichier d'actualités. txtrn
-- 1BEF0A57BE110FD467A -- rn


DANS dans cet exemple la première section envoie le titre de l'actualité et la deuxième section envoie le fichier news.txt. Si vous êtes attentif, vous verrez les champs nom de fichier et Type de contenu dans la deuxième section. Le champ filename spécifie le nom du fichier envoyé et le champ Content-Type spécifie le type de ce fichier. Application/octet-stream indique qu'il s'agit d'un flux de données standard, et Content-Transfer-Encoding: Binary indique qu'il s'agit de données binaires, non codées d'aucune façon.

Un point très important. La plupart des scripts CGI sont écrits personnes intelligentes, ils aiment donc vérifier le type du fichier entrant, qui est dans Content-Type. Pour quoi? Le plus souvent, le téléchargement de fichiers sur des sites Web est utilisé pour recevoir des images du visiteur. Ainsi, le navigateur lui-même essaie de déterminer le type de fichier que le visiteur souhaite envoyer et insère le Content-Type approprié dans la requête. Le script le vérifie à réception, et, par exemple, s'il ne s'agit pas d'un gif ou d'un jpeg, il l'ignore ce fichier. Par conséquent, lors de la création d'une requête « manuellement », veillez à ce que la valeur Content-Type soit la plus proche du format du fichier transféré.

Image/gif pour gif
image/jpeg pour jpeg
image/png pour png
image/tiff pour tiff (qui est extrêmement rarement utilisé, le format est trop volumineux)

Dans notre exemple, une requête est générée dans laquelle fichier texte. Une demande de transfert d'un fichier binaire est générée de la même manière.

4. Post-scriptum.

Je pense que cela ne vaut pas la peine de parler en détail de l'envoi de requêtes au serveur. Il s'agit de pure technologie RHP :-). Il suffit de lire attentivement la section sur les fonctions permettant de travailler avec les sockets, ou sur les fonctions du module CURL dans la documentation officielle PHP.

D’après ce qui précède, j’espère que la raison de la question est désormais claire : « Comment puis-je générer une requête POST à ​​l’aide de la fonction d’en-tête ? » - sans signification. La fonction header(string) ajoute une entrée uniquement à l’en-tête de la requête, mais pas au corps de la requête.

Dos

Oui, oui, tout le monde a appris quelque chose à un moment donné. La seule chose qui distingue les gens à cet égard est que pour certains, les enseignements sont faciles, tandis que pour d'autres, ils ne peuvent pas comprendre l'essence du problème pendant plusieurs mois. Aujourd'hui, nous allons parler des requêtes POST et GET en HTML\PHP.

Les requêtes POST et GET elles-mêmes (ci-après simplement les requêtes) sont depuis longtemps ancrées dans toutes les ressources Internet. Si une alternative à ces technologies apparaît un jour, ce ne sera probablement pas de sitôt, et ce ne sera probablement pas nécessaire. Parce que nos demandes remplissent pleinement la tâche d'échange de données entre les pages Internet.

Examinons d'abord la requête GET. Créons un fichier index.php avec HTML standard code, et placez également un formulaire dessus, que ce soit un formulaire de commande de produit.



Faisons attention à la balise ici formulaire. Il a deux paramètres action Et méthode. Le premier est responsable de l'adresse de la page vers laquelle nous transférerons nos données, le second est responsable de la méthode par laquelle ces données seront transférées. À l’intérieur de cette balise, nous décrivons l’ensemble de nos données que nous souhaitons transmettre. Les données doivent être nommées (paramètre nom). Le type d'entrée est également requis soumettre, qui est un bouton qui, lorsqu'on clique dessus, envoie des données.

Sauvons notre fichier et ouvrons-le dans le navigateur.
Le chemin de notre page dans le navigateur est « …/index.php ». Sur la page elle-même, nous voyons deux champs de saisie et un bouton. Entrons quelque chose dans nos champs et cliquons sur le bouton « Commander ». Notre page a été mise à jour. Regardons son adresse : ".../index.php?orderName=Test&count=12". (J'ai entré le mot « Test » dans le premier champ et « 12 » dans le second). Comme on peut le constater, l'adresse de la page a un peu changé. Le fait est que la transmission des paramètres de la requête GET s'effectue en les attribuant à la ligne d'adresse de la page. Les paramètres sont séparés de l'adresse principale par le caractère « ? » et des différents paramètres par le caractère « & ». La structure des paramètres est la suivante : nom_paramètre=valeur. Le nom du paramètre correspondra à la valeur de l'attribut name dans le champ de saisie.
Modifions un peu le code de la page :

> >

Cliquez maintenant à nouveau sur le bouton « Commander ». Comme nous pouvons le constater, la page a été mise à jour, mais nos champs restent remplis. Cela s'est produit parce que nous avons spécifié une valeur par défaut pour nos champs. De plus, ces valeurs sont le paramètre GET reçu. Comme nous le voyons dans le code PHP, les paramètres GET sont un tableau avec un index de chaîne égal au nom du paramètre. Si nous jouons maintenant avec l'adresse du site, modifions les valeurs des paramètres et appuyons sur le bouton « Entrée », nous remarquerons à nouveau une image de la page mettant à jour et remplissant notre formulaire.

Il est évident que l'envoi de données secrètes ou de service dans une requête GET est incorrect (et dangereux). Il est préférable de l'utiliser pour transmettre, par exemple, l'identifiant d'une actualité à extraire de la base de données ou le nom de la page à afficher.

Une autre chose est la requête POST. Cela fonctionne de la même manière, mais n'enregistre pas les paramètres dans la barre d'adresse. Changeons notre formulaire :

$_POST["nomdecommande"]?> > $_POST["compte"]?> >

Comme vous pouvez le constater, peu de choses ont changé cependant ! Ouvrons notre page, saisissons quelque chose dans les champs et cliquons sur le bouton « Commander ». Cependant, tout a fonctionné de la même manière (cependant), comme nous le voyons dans la ligne de requête, il y a l'adresse « .../index.php » sans aucun paramètre. Ainsi, nous avons en quelque sorte « caché » nos données à regards indiscrets. Bien sûr, le concept a été caché, de manière assez conditionnelle, puisque ces données peuvent toujours être interceptées, mais c'est une autre histoire. Ajoutons les paramètres « .../index.php?orderName=Trololo&count=100 » à notre adresse et appuyons sur « Entrée ». Comme nous pouvons le voir, la page s'est chargée, mais même malgré le passage des paramètres, les champs se sont avérés vides. Cela suggère que malgré la grande similitude, ces types de requêtes ne se chevauchent en aucune façon, et si cela est nécessaire, il vaut la peine d'écrire un gestionnaire pour chaque type de requête séparément.

Je pense que ça suffit. Les bases de la question, je pense, ont été décrites en détail.

Et un peu plus… N'oubliez pas de vérifier les paramètres transmis. Si vous savez avec certitude que le paramètre doit être un nombre, arrêtez toutes les tentatives de transmission d'une valeur non numérique, etc....

La création de la norme Internet Web 2.0 a permis à l'utilisateur non seulement de recevoir des informations, mais également d'interagir activement avec d'autres utilisateurs et services Internet. Pour organiser ce feedback dans Langage HTML des balises supplémentaires ont été introduites pour permettre aux informations demandées d'être envoyées au serveur. Par exemple, il peut s'agir d'un formulaire d'inscription, d'un formulaire de commentaires ou d'un paramètre compte personnel(pages réseau social) et ainsi de suite. Dans ce chapitre, nous examinerons un ensemble de balises qui vous permettent d'organiser l'interaction des utilisateurs avec le site.

6.1. Requêtes GET et POST

Pour organiser l'interaction des utilisateurs avec Internet, le développeur du site doit prévoir la transmission des requêtes de l'utilisateur du site vers le serveur sur lequel se trouve le site. Il existe deux types de requêtes : les requêtes GET et POST.

OBTENIR-demandes

Au début du développement d’Internet, seules les requêtes GET existaient. Ils représentent le transfert de données directement vers la barre d'adresse du navigateur, ayant la syntaxe suivante :

http://domain/page?[parameter1=value1][¶meter2=value2]...

Ici, l'ensemble des données transférées vers le serveur commence par le caractère « ? » et est séparé par le caractère « & ». Les données elles-mêmes sont une paire

paramètre=valeur

Par exemple, si vous devez transmettre le nom et prénom de l'utilisateur sur la page d'inscription (par exemple, register.php) du site monsite.com, cela ressemblerait à ceci :

http://mysite.com/register.php?fname=Ivan&lname=Ivanov

Veuillez noter que les navigateurs de versions obsolètes peuvent ne pas percevoir correctement l'alphabet cyrillique et que la transmission des lettres russes s'effectuera de manière incorrecte. Il est préférable de transmettre exclusivement les informations de service dans les requêtes GET sous forme de chiffres et de mots en latin.

L'inconvénient des requêtes GET est le nombre limité de données transférées. Côté serveur, la chaîne de requête est limitée à une valeur maximale. Par exemple, si la taille maximale de la requête peut être de 1024 caractères, alors tout ce qui dépasse cette valeur sera supprimé et une partie des informations transmises ne sera pas traitée par la page spécifiée du site. La deuxième limitation importante est la capacité à transmettre des jeux de caractères strictement définis. Par exemple, des symboles ? et & sont déjà réservés et ne peuvent pas être transmis comme valeurs de paramètre. Cependant, cette règle peut être contournée si la chaîne de requête ne contient pas le caractère lui-même, mais sa valeur de code. Pour cela, utilisez le caractère '%' suivi du code du caractère, par exemple comme ceci :

http://mysite.com/register.php?fname=%CC%DF%AD%1F%DS&lname=%DD

Ici, les valeurs du code sont données en hexadécimal pour économiser la longueur de la requête.

Malgré ces inconvénients, créer des sites sans requêtes GET serait extrêmement difficile. Par exemple, ils sont indispensables en cas d'initialisation initiale d'une page du site pour un utilisateur précis, lorsque la demande précise non seulement le site et page actuelle, mais aussi son identifiant, comme cela se fait sur le réseau social VKontakte :

http://vk.com/profile.php?id=12345678

Les requêtes GET sont également souvent utilisées pour vérifier l'exactitude de l'adresse e-mail lors de l'enregistrement d'un utilisateur. Dans ce cas, l'utilisateur reçoit un e-mail avec un lien d'activation à l'adresse e-mail spécifiée, et ce lien est une requête GET.

POSTE-demandes

Pour résoudre ces défauts des requêtes GET, des requêtes POST ont été ajoutées, permettant de transférer de grandes quantités de données sous forme binaire, c'est-à-dire sans distorsion ni modification des données transmises. De telles requêtes sont bien adaptées au téléchargement de fichiers et d'images sur le serveur. Par exemple, lorsqu'un utilisateur télécharge une image sur son profil de réseau social, des requêtes POST sont utilisées à cet effet. Plus de détails sur l'organisation des requêtes POST seront discutés ci-dessous.

Cet article a pour but d'expliquer les principes de transmission de données sur Internet en utilisant deux méthodes principales : GET et POST. Je l'ai écrit en complément des instructions du générateur d'horaires de travail pour ceux qui ne seront probablement pas intéressés par les détails ☺.

Allez à l'adresse suivante (c'est pour une explication visuelle) : http://calendarin.net/calendar.php?year=2016 Faites attention à la barre d'adresse du navigateur : calendrierin.net/calendar.php ?année=2016 Le fichier principal est nommé suivi d'un point d'interrogation (?) et d'un paramètre "année" avec la valeur "2016". Ainsi, tout ce qui suit le point d’interrogation est une requête GET. C'est simple. Pour transmettre plusieurs paramètres, ils doivent être séparés par une esperluette (&). Exemple : calendrierin.net/calendar.php ?année=2016&display=jours de travail et jours de congé

Le fichier principal est toujours nommé, suivi d'un point d'interrogation (?), puis d'un paramètre « année » avec la valeur « 2016 », puis d'une esperluette (&), puis d'un paramètre « affichage » avec la valeur « jours-travail- et-jours" -off".

Les paramètres GET peuvent être modifiés directement dans la barre d'adresse du navigateur. Par exemple, en changeant la valeur « 2016 » en « 2017 » et en appuyant sur la touche, vous accéderez au calendrier 2017.

Il s'agit d'un transfert de données de manière cachée(l'adresse de la page ne change pas) ; c'est-à-dire que vous ne pouvez voir que ce qui a été transféré à l'aide d'un programme (script). Par exemple, dans l'outil suivant pour compter les caractères dans le texte, les données originales sont transmises à l'aide de la méthode POST : http://usefulonlinetools.com/free/character-counter.php

Si vous avez des questions, des commentaires et mon email est à votre service.

En plus de la méthode GET, dont nous avons parlé dans l'article précédent, il existe une autre méthode pour envoyer une requête via le protocole HTTP - Méthode POST. La méthode POST est également très souvent utilisée en pratique.

Si, pour contacter le serveur via la méthode GET, il suffisait de saisir une requête dans l'URL, alors dans la méthode POST, tout fonctionne selon un principe différent.

Pour exécuter ce type de demande, nous devons cliquer sur le bouton avec l'attribut type="submit", qui se trouve sur la page Web. Veuillez noter que ce bouton se trouve dans l'élément
, dont l'attribut méthode est défini sur post.

Considérez ce code HTML :

Entrez du texte:

Si l'utilisateur saisit du texte dans le champ de texte et clique sur le bouton « Soumettre », la variable de texte sera envoyée au serveur avec la valeur du contenu saisi par l'utilisateur.

Requêtes POST et GET en mots simples

Cette variable sera envoyée en utilisant la méthode POST.

Si vous écrivez ceci sous la forme :

Ensuite, les données seront envoyées à l'aide de la méthode GET.

Si, dans le cas d'une requête GET, la quantité de données que nous pouvions transférer était limitée par la longueur de la barre d'adresse du navigateur, alors dans le cas d'une requête POST, il n'y a pas une telle limitation et nous pouvons transférer des quantités importantes. d'information.

Une autre différence entre la méthode POST et la méthode GET est que la méthode POST masque toutes les variables qu'elle transmet ainsi que leurs valeurs dans son corps (Entity-Body). Dans le cas de la méthode GET, ils étaient stockés dans la chaîne de requête (Request-URI).

Voici un exemple de requête effectuée à l'aide de la méthode POST :

POST / HTTP/1.0\r\n
Hébergeur : www.site.ru\r\n
Référent : http://www.site.ru/index.html\r\n
Cookie : revenu=1\r\n
Type de contenu : application/x-www-form-urlencoded\r\n
Longueur du contenu : 35\r\n
\r\n
login=Dima&mot de passe=12345

Ainsi, en transmettant des données via la méthode POST, il sera beaucoup plus difficile pour un attaquant de les intercepter, car ils sont cachés à la vue directe, la méthode POST de transmission de données est donc considérée comme une méthode plus sécurisée.

De plus, en utilisant la méthode POST, vous pouvez transférer non seulement du texte, mais également des données multimédias (images, audio, vidéo). Il existe un paramètre spécial Content-Type qui détermine le type d'informations qui doivent être transmises.

Et enfin, afin de recevoir les données transmises par cette méthode sur le serveur, la variable POST est utilisée.

Voici un exemple de traitement en PHP :

echo $_POST['texte'];
?>

Dans le dernier post, nous avons décidé de ce que le navigateur (client) envoie serveur HTTP demandes et le serveur envoie des réponses HTTP au client. Ces demandes et réponses sont formatées selon certaines règles. Il existe quelque chose comme une syntaxe, comment et dans quel ordre elle doit être écrite. Il doit y avoir une structure strictement définie.

Examinons de plus près cette structure par laquelle les requêtes et les réponses sont construites dans le protocole HTTP.

Une requête HTTP se compose de trois parties principales, qui apparaissent dans l'ordre indiqué ci-dessous. Entre les en-têtes et le corps du message se trouve une ligne vide (comme séparateur), elle représente un caractère de saut de ligne.

Chaîne vide (séparateur)

Demandes Post et Get, quelle est la différence entre elles, laquelle est la meilleure et à quelles fins ?

corps du message (Entity Body) – paramètre facultatif

Chaîne de requête– spécifie la méthode de transfert, l'URL à laquelle accéder et la version du protocole HTTP.

Rubriques– décrire le corps des messages, transmettre divers paramètres et autres informations et informations.

Corps du message- ce sont les données elles-mêmes qui sont transmises dans la requête. Le corps du message est un paramètre facultatif et peut être manquant.

Lorsque nous recevons une demande de réponse du serveur, le corps du message est le plus souvent le contenu de la page Web. Mais, lors des requêtes au serveur, il peut aussi parfois être présent, par exemple lorsque nous transférons les données que nous avons renseignées dans le formulaire. retour au serveur.

Nous examinerons chaque élément de la demande plus en détail dans les notes suivantes.

Prenons par exemple une requête réelle adressée au serveur. J'ai mis en évidence chaque partie de la demande avec une couleur différente : la ligne de la demande est verte, les en-têtes sont orange et le corps du message est bleu.

Requête du navigateur :

Hébergeur : webgyry.info

Cookie : paramètres wp

Connexion : keep-alive

Dans l'exemple suivant, le corps du message est déjà présent.

Réponse du serveur :

Type de contenu : texte/html ; jeu de caractères = UTF-8

Encodage de transfert : fragmenté

Connexion : keep-alive

Keep-Alive : délai d'attente = 5

X-Ping : //webgyry.info/xmlrpc.php

Document sans titre

Ce sont les messages échangés entre le client et le serveur via HTTP.

Au fait, voulez-vous savoir s'il est utile d'utiliser certains éléments de votre site Web en utilisant les « objectifs » de Yandex Metrics et de Google Analytics ?

Supprimez ce qui ne fonctionne pas, ajoutez ce qui fonctionne et doublez vos revenus.

Cours sur la définition des objectifs de Yandex Metrica.

Cours sur la configuration des objectifs Google Analytics.

Le client HTTP envoie une requête au serveur sous la forme d'un message de requête, qui a le format suivant :

  • Chaîne de requête (obligatoire)
  • Titre (élément facultatif)
  • Chaîne vide (obligatoire)
  • Corps du message (élément facultatif)

Examinons chacun de ces éléments séparément.

Chaîne de requête

La ligne de requête commence par un jeton de méthode, suivi de l'URI de la requête et de la version du protocole. Les éléments sont séparés les uns des autres par des espaces :

Considérons cet élément en détails

Méthode de demande

Cet élément spécifie une méthode qui doit être appelée côté serveur à l'URI spécifié.

Il existe huit méthodes en HTTP :

  • TÊTE
    Utilisé pour obtenir l'état et la chaîne d'en-tête du serveur par URI. Ne modifie pas les données.
  • OBTENIR
    Utilisé pour recevoir des données du serveur à l'URI spécifié. Ne modifie pas les données.
  • POSTE
    Utilisé pour envoyer des données au serveur (telles que des informations sur le développeur, etc.) à l'aide de formulaires HTML.
  • METTRE
    Remplace toutes les données précédentes de la ressource par les nouvelles données chargées.
  • SUPPRIMER
    Supprime toutes les données actuelles sur la ressource spécifiée par l'URI.
  • CONNECTER
    Établit une connexion tunnel au serveur à l'URI spécifié.
  • OPTIONS
    Décrit les propriétés de connexion pour la ressource spécifiée.
  • TRACER
    Fournit un message contenant une trace de retour de l'emplacement de la ressource spécifiée dans l'URI.

URI de la demande

L'URI (Uniform Resource Identifier) ​​​​​​est l'identifiant de la ressource à laquelle la requête est envoyée. Voici le format d'URI le plus couramment utilisé :

‘*’ utilisé lorsque la requête HTTP ne concerne pas une ressource spécifique, mais le serveur. Utilisé uniquement lorsque la méthode n'a pas besoin d'être appliquée à une ressource. Par exemple,

URIabsolu utilisé lorsqu'une requête HTTP est effectuée sur un proxy. Le proxy est invité à transmettre la requête depuis le cache disponible et renvoie une réponse. Par exemple:

chemin_absolu | source le plus couramment utilisé.

Apprendre à travailler avec les requêtes GET et POST

Une ressource spécifique sur un serveur spécifique est demandée. Par exemple, un client souhaite recevoir une ressource d'un serveur via le port 80. L'adresse de la ressource est « www.proselyte.net » et envoie la requête suivante :

Interrogation des champs d'en-tête

Les champs d'en-tête permettent au client de transmettre des informations supplémentaires sur la demande et sur elle-même au serveur. Ces champs agissent comme des modificateurs de requête.

Vous trouverez ci-dessous une liste des champs d'en-tête les plus importants pouvant être utilisés :

  • Accepter le jeu de caractères
  • Accepter-Encodage
  • Accepter la langue
  • Autorisation
  • Attendre
  • Si-correspond
  • Si-Modifié-Depuis
  • Si aucune correspondance
  • Si-plage
  • Si-non modifié-depuis
  • Gamme
  • Référent
  • Agent utilisateur

Si nous voulons implémenter notre propre client et notre propre serveur Web, nous pouvons alors créer Les champs personnalisés entête.

Exemple de requête HTTP

Ceci conclut notre étude des requêtes HTTP.
Dans le prochain article, nous examinerons les réponses HTTP.

L'une des façons d'envoyer une requête HTTP à un serveur consiste à utiliser la méthode GET. Cette méthode est la plus courante et les requêtes adressées au serveur se font le plus souvent en l'utilisant.

Le moyen le plus simple de créer une requête GET consiste à saisir l'URL dans la barre d'adresse de votre navigateur.

Le navigateur enverra au serveur approximativement les informations suivantes :

OBTENIR / HTTP/1.1
Hébergeur : webgyry.info
Agent utilisateur : Mozilla/5.0 (Windows NT 6.1 ; rv:18.0) Gecko/20100101 Firefox/18.0
Accepter : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Langue acceptée : ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accepter l'encodage : gzip, dégonfler
Cookie : paramètres wp
Connexion : keep-alive

La demande se compose de deux parties :

1. Ligne de demande

2. En-têtes de message

Notez qu'une requête GET n'a pas de corps de message. Mais cela ne signifie pas qu'avec son aide, nous ne pouvons transmettre aucune information au serveur.

Différence entre les méthodes GET et POST

Cela peut être fait en utilisant des paramètres GET spéciaux.

Pour ajouter des paramètres GET à une requête, vous devez ajouter un « ? » à la fin de l'URL. et après cela, commencez à leur poser des questions selon la règle suivante :

nom_paramètre1=valeur_paramètre1& nom_paramètre2=valeur_paramètre2&…

Le séparateur entre les paramètres est le signe « & ».

Par exemple, si l’on souhaite transmettre deux valeurs au serveur, le nom d’utilisateur et son âge, alors cela peut se faire avec la ligne suivante :

http://site.ru/page.php?name=dima&age=27

Lorsque cette requête est exécutée, les données se retrouvent dans la variable d'environnement dite QUERY_STRING, à partir de laquelle elles peuvent être récupérées sur le serveur à l'aide d'un langage de programmation Web côté serveur.

Voici un exemple de la façon dont cela peut être réalisé en PHP.

echo "Votre nom : " . $_GET["nom"] . "
»;
echo "Votre âge : " . $_GET["âge"] . "
»;
?>

La construction $_GET["parameter_name"] permet d'afficher la valeur du paramètre passé.

Suite à l'exécution de ce code dans le navigateur, les éléments suivants seront affichés :

Votre nom : Dima
Votre âge : 27 ans

Nous faisons également une requête au serveur en utilisant la méthode GET.

Les méthodes GET et POST en HTTP et HTTPS sont les deux méthodes les plus populaires utilisées pour transférer des données du client au serveur à l'aide de HTTP (HyperText Transfer Protocol). GET et POST peuvent être utilisés pour envoyer une requête et recevoir une réponse, mais il existe des différences significatives entre eux.

Différence entre les requêtes GET et POST en HTTP ou HTTPS - question populaire dans chaque entretien de programmation Web. Étant donné que HTML est indépendant des technologies de serveur Web telles que Java, ASP ou PHP et que HTTP est le principal protocole de l'espace Internet, il est important de comprendre Méthodes OBTENIR et POSTER. Dans cet article, nous verrons ce qu'est la méthode HTTP GET, quelle est la méthode HTTP POST, quand utiliser chaque requête et quelle est la différence entre elles. Examinons chaque concept séparément.

Qu’est-ce que le HTML ?

HTML est le langage utilisé pour créer des pages Web. L'hypertexte fait référence aux hyperliens que peut contenir une page HTML. Le langage de balisage fait référence à la manière dont les balises sont utilisées pour définir la mise en page d'une page et les éléments d'une page.
Ci-dessous se trouve Exemple HTML, qui permet de définir une page web de base avec un titre et un paragraphe de texte :



<Голова>
<Название>TechTerms.com

<Тело>

Ceci est un exemple de paragraphe en HTML.

La première ligne précise le type de contenu contenu dans le document., Et , qui sont tous inclus dans l'exemple ci-dessus. Le titre de la page, les métadonnées et les liens vers les fichiers d'ancrage sont placés entre le contenu réel de la page est placé entre les balises .

Le Web a connu de nombreux changements au cours des dernières décennies, mais HTML a toujours été le principal langage utilisé pour développer des pages Web. Il est intéressant de noter que tandis que les sites Web sont devenus plus avancés et interactifs, le HTML est devenu plus simple. Si vous comparez la source d'une page HTML5 à une page similaire écrite en HTML 4.01 ou XHTML 1.0, la page HTML5 contiendra moins de code. En effet, le HTML moderne s'appuie sur des feuilles de style en cascade ou sur JavaScript pour formater presque tous les éléments d'une page.

De nombreux sites Web dynamiques génèrent des pages Web à la volée à l'aide d'un langage de script côté serveur tel que PHP ou ASP. Cependant, même pages dynamiques doit être formaté avec en utilisant HTML. Par conséquent, les langages de script génèrent souvent du code HTML qui est envoyé au navigateur Web.

Le protocole de transfert hypertexte HTTP est conçu pour la communication entre les clients et les serveurs et fonctionne comme un protocole requête-réponse.

Le navigateur Web peut être le client et l'application sur l'ordinateur hébergeant le site Web peut être le serveur.

Le client (navigateur) envoie une requête HTTP au serveur, le serveur renvoie une réponse qui contient des informations sur l'état de la requête et peut également contenir le contenu demandé.

Deux méthodes de requête GET et POST

Deux méthodes couramment utilisées pour la requête-réponse entre le client et le serveur sont :

    GET - demande des données à la ressource spécifiée ;

    POST - envoie les données à traiter à la ressource spécifiée.

La traduction de GET et POST signifie littéralement réception et post-traitement.

En savoir plus sur HTTP

HTTP est un protocole utilisé pour transmettre des données sur Internet. Il fait partie de la suite Internet Protocol et définit les commandes et services utilisés pour transmettre les données des pages Web.

HTTP utilise un modèle serveur-client. Le client peut être un ordinateur personnel, un ordinateur portable ou appareil mobile. Un serveur HTTP est généralement un hébergeur Web avec logiciel serveur Web tel qu'Apache ou IIS. Lorsqu'un utilisateur accède à un site Web, le navigateur envoie une requête au serveur Web approprié et répond avec un code d'état HTTP. Si l'URL est valide et que la connexion est accordée, le serveur enverra la page Web et les fichiers associés au navigateur.

Les codes d'état HTTP courants incluent :

    200 — demande réussie (une page Web existe) ;

    301 - Se déplace constamment (redirige fréquemment vers une nouvelle URL) ;

    401 — demande non autorisée (autorisation requise) ;

    500 - erreur interne du serveur (souvent causée par configuration incorrecte serveur).

POST et GET en HTTP

HTTP définit les commandes GET et POST utilisées pour traiter les soumissions de formulaires sur les sites Web. La commande CONNECT est utilisée pour faciliter une connexion sécurisée cryptée à l'aide de SSL. Les connexions HTTP cryptées se font via HTTPS - Extension HTTP, conçu pour des transferts de données sécurisés.

Les URL commençant par "http://" sont disponibles sur protocoles standards transferts hypertextes et utilisent par défaut le port 80. Les URL commençant par « https:// » sont accessibles via une connexion HTTPS sécurisée et utilisent souvent le port 443.

POSTE

POST est une série vérifications du système effectués par les ordinateurs et autres appareils électroniques lorsqu’ils sont allumés. Les résultats des tests peuvent être affichés sur l'écran, affichés via des LED clignotantes ou simplement enregistrés en interne. DANS systèmes informatiques L'opération POST est effectuée au début de la séquence de démarrage. Si tous les tests réussissent, le reste du processus de démarrage se poursuivra automatiquement.

Système d'exploitation Appareils Mac et Windows exécutent le POST à ​​chaque fois que l'ordinateur démarre ou redémarre. Scanner les chèques Matériel et garantit que le processeur, la RAM et les périphériques de stockage fonctionnent correctement. Si une erreur se produit pendant le POST, le processus de démarrage peut s'interrompre ou s'arrêter complètement et le message « Sur PC » peut apparaître sur le moniteur. Erreurs POST apparaissent souvent sur l’écran d’informations du BIOS. Ils peuvent être affichés sous forme de codes cryptés tels que "08" ou Message système, par exemple, "Erreur mémoire système lorsqu'ils sont déplacés. » Sur Erreurs Mac Les POST sont souvent indiqués par un simple graphique, tel qu'une icône de dossier cassé, qui indique que périphérique de démarrage pas trouvé.

Manifestations physiques

Dans certains cas, l'écran de l'ordinateur peut même ne pas s'allumer avant les erreurs POST. Si cela se produit, des codes d'erreur peuvent être affichés via des LED clignotantes ou des bips. Par exemple, Apple iMac jouera trois tonalités consécutives, fera une pause de cinq secondes, puis répétera les tonalités lorsqu'une mauvaise RAM est détectée au démarrage. La plupart des PC émettent également un bip lorsque des erreurs POST sont détectées, bien que chaque fabricant utilise ses propres codes.

POST est un terme plutôt technique qui n'est utilisé que techniciens informatiques régulièrement. Cependant, c'est un bon acronyme car il vous aide à mieux comprendre les messages d'erreur qui peuvent apparaître sur les ordinateurs ou autres appareils électroniques. Si votre ordinateur ne démarre pas en raison d'une erreur POST, vous pouvez utiliser un autre appareil pour trouver la signification et la cause de l'erreur sur le site Web du fabricant. Vous pouvez alors prendre l'action appropriée : retirer le module de mémoire ou réinstallation cartes vidéo, puis redémarrage de l'équipement.

OBTENIR

POST est également une méthode de transfert de variables Formulaires HTML d'une page web à une autre sans les afficher dans la barre d'adresse. Une méthode alternative est GET, qui ajoute des valeurs à l'URL. Les requêtes HTTP POST fournissent des données supplémentaires du client (navigateur) au serveur dans le corps du message. En revanche, les requêtes GET incluent toutes les données requises dans l'URL. Les formulaires en HTML peuvent utiliser n'importe quelle méthode en spécifiant method=POST ou method=GET (par défaut) sur l'élément . La méthode spécifiée détermine la manière dont les données du formulaire sont soumises au serveur. Lorsque la méthode GET est utilisée, toutes les données du formulaire sont codées dans l'URL en tant que paramètres de chaîne de requête. Avec POST, les données du formulaire apparaissent dans le corps du message de requête HTTP.

Différences dans la présentation des formulaires

La méthode de requête POST demande au serveur Web d'accepter et de stocker les données contenues dans le corps du message de requête. Souvent utilisé lors du téléchargement d’un fichier ou de la soumission d’un formulaire Web complété.

Méthode Requête HTTP GET récupère les informations du serveur. Dans le cadre d'une requête GET, certaines données peuvent être transmises dans la chaîne de requête URL, spécifiant les termes de recherche, les plages de dates ou d'autres informations spécifiant la requête.

Dans le cadre d'une requête POST, une quantité arbitraire de données de tout type peut être envoyée au serveur dans le corps du message de requête. Le champ d'en-tête d'une requête POST indique généralement le type de média Internet du corps du message.

La principale différence entre les requêtes GET et POST est qu'elles correspondent à des requêtes HTTP différentes telles que définies dans les spécifications HTTP. Le processus de soumission pour les deux méthodes commence de la même manière : l'ensemble de données du formulaire est créé par le navigateur puis codé de la manière spécifiée par l'attribut enctype. Pour METHOD="POST", l'attribut enctype peut être multipart/form-data ou application/x-www-form-urlencoded, alors que pour METHOD="GET", il n'est déclenché que via application/x-www-form-urlencoded. les données du formulaire sont définies puis envoyées au serveur.

Pour soumettre un formulaire à l'aide de METHOD="GET", le navigateur construit une URL en prenant la valeur de l'attribut action et en l'ajoutant à l'ensemble de données du formulaire, codé à l'aide du type de contenu application/x-www-form-urlencoded). Le navigateur traite alors cette URL comme si elle faisait référence à un lien (ou comme si l'utilisateur avait tapé manuellement l'URL). Le navigateur divise l'URL en parties et reconnaît l'hôte, puis envoie une requête GET à cet hôte avec le reste de l'URL comme argument. Il est important de noter que ce processus signifie que ces formulaires sont limités aux codes ASCII. Une attention particulière doit être accordée au codage et au décodage d'autres types de caractères lors de leur transmission à une URL ASCII.

La soumission d'un formulaire avec METHOD="POST" entraîne l'envoi d'une requête POST en utilisant la valeur de l'attribut action et un message généré en fonction du type de contenu spécifié par l'attribut enctype.

PHP

PHP est intégré au HTML. Cela signifie que du code PHP peut être inséré dans une page HTML. Le code PHP est lu ou analysé par le serveur qui héberge la page. La sortie des fonctions GET et POST en PHP sur une page est généralement renvoyée sous forme de code HTML pouvant être lu par le navigateur. Étant donné que le code PHP est converti en HTML avant le chargement de la page, les utilisateurs ne peuvent pas afficher le code PHP sur la page. Cela fait Pages PHP suffisant pour accéder aux bases de données et autres informations protégées.

Une grande partie de la syntaxe de PHP est empruntée à d'autres langages tels que C, Java et Perl. Cependant, PHP possède un certain nombre de fonctionnalités uniques et fonctions spéciales. Le but de ce langage est de permettre aux développeurs Web d'écrire des pages générées dynamiquement rapidement et facilement.

WordPress

WordPress est système gratuit gestion de contenu, utilisée pour créer et maintenir des sites Web. Sa facilité d'utilisation et ses fonctionnalités de blog uniques l'ont aidé à devenir l'outil de blog le plus populaire sur Internet.

L'interface WordPress permet à toute personne n'ayant aucune expérience en développement Web de créer et de publier un site Web. Les outils de blogs intégrés offrent un moyen simple de suivre les publications individuelles, les visiteurs et les commentaires des utilisateurs.

Bien qu'il y en ait des milliers disponibles Modèles WordPress et plugins, le système POST GET de WordPress a encore ses limites. Puisqu'il s'agit d'un service basé sur des modèles, l'utilisateur doit commencer avec un site Web prédéfini plutôt que de créer des pages à partir de zéro. De plus, il n’est pas possible d’insérer des scripts ou de maintenir une base de données avec le même niveau de contrôle qu’offre un site Web personnalisé.

L'outil POST_GET_ID() vous permet d'utiliser des scripts pour manipuler l'élément car il possède un identifiant unique et lors de sa soumission sous forme de formulaire via ces méthodes, la liste déroulante sera envoyée avec identifiant unique, ce qui permet au script de remarquer quelle publication est en cours d'exécution. Alternativement, une variable cachée pourrait être envoyée, ce qui permettrait au script de voir quelle publication appartient à la vue.