


L'anatomie d'une demande Web: comment les superglobals mappent au protocole HTTP
Les variables hyperglobales PHP telles que $ _get, $ _post, $ _Server mappent directement chaque partie de la demande http: 1. $ _Get correspond à la chaîne de requête URL, telle que? Term = Apple & Page = 2, sera remplie à $ _get ['term'] et $ _get ['page'], les données peuvent être observées dans l'URL et ne sont pas appropriées pour des informations sensier; 2. $ _POST Les processus forment des données dans le corps de la demande de la demande, tels que le nom d'utilisateur et le mot de passe, les données ne sont pas dans l'URL et peuvent être transmises en grande quantité mais nécessitent des HTTP pour garantir la sécurité; 3. $ _Server contient des métadonnées de demande, telles que request_method correspond à la méthode http, http_host provient de l'en-tête hôte, HTTP_USER_AGENT provient de l'en-tête de l'agent utilisateur, et de l'en-tête personnalisée tel que X-récessionné avec HTTP_X_REQUEST_WITH; 4. Les autres hyperglobals incluent $ _Request (les fusions par défaut obtiennent, publient et cookie, mais il est recommandé d'utiliser des variables spécifiques explicitement), $ _cookie (les en-têtes de cookie d'analyse pour la gestion de session) et $ _Files (le traitement des téléchargements de fichiers en multipartique / format de data), qui apporte à PHP avec la possibilité de prendre des processus structurés à diverses composants à HTTPETS de la possibilité de se débrouiller à un accès structure Entrée et création d'applications fiables.
Lorsqu'un utilisateur interagit avec un site Web - cliquer un lien, soumettre un formulaire ou charger une page - une demande Web est générée. Dans les coulisses, cette demande suit le protocole HTTP, transportant des données du client (généralement un navigateur) vers le serveur. Du côté PHP, ces données deviennent accessibles grâce à des variables spéciales appelées superglobals. Ces superglobaux - tels que $_GET
, $_POST
, $_SERVER
et d'autres - sont directement liés à différentes parties de la demande HTTP. Comprendre comment ils mappent au protocole sous-jacent aident à démystifier comment les applications Web reçoivent et traitent les entrées.

Comment $_GET
reflète la chaîne de requête URL
Le superglobal $_GET
correspond directement à la chaîne de requête dans l'URL d'une demande HTTP. Lorsqu'un navigateur demande une URL comme:
https://example.com/search.php?term=Apple&page=2
La partie après le ?
- term=apple&page=2
- est la chaîne de requête. Ces données sont envoyées au serveur dans le cadre de la ligne de demande HTTP (dans les méthodes GET et POST, bien qu'elle soit le plus souvent associée à GET). PHP analyse automatiquement cette chaîne et remplit le tableau $_GET
:

$ _Get ['Term'] // "Apple" $ _Get ['page'] // "2"
Ce mappage est simple: chaque paire de valeurs clés dans la chaîne de requête devient une entrée dans $_GET
. Il est important de noter que ces données sont visibles dans l'URL, ce qui les rend moins sécurisés pour les informations sensibles et soumises à des limites de longueur imposées par les navigateurs et les serveurs.
Comment $_POST
gère les données de formulaire dans le corps de la demande
Lorsqu'un formulaire HTML utilise method="POST"
, les données de formulaire sont envoyées dans le corps de la demande HTTP plutôt que dans l'URL. Par exemple:

<formulaire méthode = "post" action = "/ soumed.php"> <input type = "text" name = "username" value = "Alice"> <input type = "mot de passe" name = "mot de passe" value = "secret"> <Button Type = "Soumider"> Connexion </ftones> </ form>
Lors de la soumission, le navigateur envoie une demande HTTP comme:
Post /submit.php http / 1.1 Hôte: exemple.com Type de contenu: application / x-www-form-urlencoded Longueur du contenu: 34 nom d'utilisateur = Alice et mot de passe = secret
PHP lit le corps de la demande, analyse les données codées par la forme et remplit le superglobal $_POST
:
$ _Post ['' username '] // "Alice" $ _Post ['mot de passe'] // "secret"
Contrairement à $_GET
, les données $_POST
ne sont pas visibles dans l'URL et peuvent gérer des charges utiles plus importantes. Cependant, il n'est toujours pas intrinsèquement sécurisé - valider et désinfecter les entrées et utiliser les HTTP pour protéger les données sensibles en transit.
Comment $_SERVER
expose les en-têtes HTTP et demandez les métadonnées
Le superglobal $_SERVER
contient des informations sur l'environnement de demande HTTP, dont une grande partie provient des en-têtes de demande et du contexte du serveur. Bien que toutes les entrées ne soient pas des mappages directs, beaucoup corrigent étroitement avec les éléments du protocole HTTP.
Par exemple:
-
$_SERVER['REQUEST_METHOD']
→ Carte à la méthode HTTP (obtenir, publier, mettre, etc.) -
$_SERVER['HTTP_HOST']
→ Venez de l'Host:
en-tête -
$_SERVER['HTTP_USER_AGENT']
→ dérivé de l'User-Agent:
en-tête -
$_SERVER['CONTENT_LENGTH']
→ correspond à l'Content-Length:
-
$_SERVER['HTTPS']
→ indique si la connexion est sécurisée
Certains en-têtes sont préfixés avec HTTP_
et convertis en majuscules avec des tirets remplacés par des soulignements. Par exemple, un en-tête personnalisé comme X-Requested-With: XMLHttpRequest
apparaît:
$ _Server ['http_x_requeted_with'] // "xmlhttprequest"
Ce tableau donne aux scripts PHP l'accès aux détails de la demande de bas niveau, à l'activation de la logique conditionnelle en fonction du type de client, des jetons d'authentification ou des décisions de routage.
Autres superglobaux et leurs rôles
$_REQUEST
: un tableau composite qui, par défaut, inclut les données de$_GET
,$_POST
et$_COOKIE
. Son contenu peut être configuré via la directivevariables_order
dans php.ini. Bien que pratique, il est souvent découragé en faveur de l'utilisation explicite$_GET
ou$_POST
pour éviter l'ambiguïté.$_COOKIE
: peuplé duCookie:
en-tête dans la demande HTTP. Lorsqu'un serveur envoie un en-têteSet-Cookie
, le navigateur le stocke et l'inclut dans les demandes ultérieures du même domaine.Exemple d'en-tête:
Cookie: session_id = ABC123; thème = sombre
Devient:
$ _Cookie ['session_id'] // "ABC123" $ _Cookie ['thème'] // "sombre"
$_FILES
: ne faisant pas directement partie des données de formulaire standard - elle survient lorsqu'un formulaire comprendenctype="multipart/form-data"
. Le corps HTTP contient ensuite des données de fichiers binaires, et PHP l'analyse en$_FILES
, fournissant des métadonnées comme le nom, le type, la taille et l'emplacement temporaire.
Fondamentalement, chaque superglobal agit comme une interface structurée à une partie spécifique de la demande HTTP, qu'il s'agisse de l'URL, du corps, des en-têtes ou des cookies. Savoir comment ils mappent au protocole aident les développeurs à déboguer les problèmes, à gérer les entrées en toute sécurité et à concevoir des applications Web robustes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le cœur du téléchargement de fichiers consiste à vérifier les erreurs, à confirmer les types de fichiers, à renommer et à déplacer en toute sécurité les fichiers. 1. Vérifiez d'abord si $ _files ['error'] est upload_err_ok; 2. Utilisez FINFO pour détecter le type de mime réel au lieu de faire confiance aux données du client; 3. Vérifiez les extensions de fichiers et limite les types autorisés; 4. Renommer les fichiers avec des noms aléatoires tels que bin2hex (random_bytes (16)) pour empêcher la traversée de chemin; 5. Déplacer les fichiers des répertoires temporaires pour sécuriser les répertoires de téléchargement via move_uploaded_file (); 6. L'emplacement de stockage doit être situé à l'extérieur du répertoire de racine Web autant que possible, et s'il doit être divulgué, l'exécution du script sera désactivée; 7. Utilisez GD ou

$ _GetRevevesDatafromurlParameters, isvisibleandBookmarkable, adaptoron-sensible, idempotentoperationslikesearchorfiltering.2. $ _ PostsendsdataRerequestbody, propose une privilègeur

Les variables hyperglobales PHP telles que $ _get, $ _post, $ _Server mappent directement chaque partie de la demande http: 1. $ _Get correspond à la chaîne de requête URL, telle que? Term = Apple & Page = 2, sera remplie à $ _get ['term'] et $ _get ['page'], les données peuvent être observées dans l'URL et ne sont pas appropriées pour des informations sensier; 2. $ _POST Les processus forment des données dans le corps de la demande de la demande, tels que le nom d'utilisateur et le mot de passe, les données ne sont pas dans l'URL, et elle peut être transmise en grande partie mais nécessite HTTPS pour garantir la sécurité; 3. $ _Server contient des métadonnées de demande, telles que request_method correspond à la méthode http, http_h

Toujours ValidateAndanitize UsuglobalinputsusingFunctions likeFilter_Input () orfilter_var () toenSuredatameetSExpectedCriteriaAndisfreeOfMaliciousContent.2.UsurepreparedStatementSwithParameteris

$ _Session et $ _cookie sont les mécanismes de base de la mise en œuvre de la gestion de l'état d'application Web en PHP; 1. $ _Session stocke les données utilisateur via le serveur et s'appuie sur un ID de session unique (généralement stocké dans un cookie nommé PhpSesSID) pour maintenir l'état de l'utilisateur. Il nécessite l'appel Session_Start () pour initialiser, qui a une sécurité des données élevée; 2. $ _Cookie stocke une petite quantité de données du côté client, qui peut être utilisée pour persister l'état de connexion, les préférences des utilisateurs ou les séances de reconnexion; 3. Les pratiques de sécurité incluent l'appel Session_Regenerate_id (true) après s'être connecté pour empêcher les attaques fixes de session et définir des paramètres de cookie sécurisés (tels que Secure, H

SuperglobalsInphParepredefined, toujours disponible pour la réalisation

TheglobalKeywordIsslightlyfasterthan $ GlobalsDuetoDirectSymboltableBinding, maistheperformanceFiferenceIsNegligibleshmostApplications.2. $ GlobalsprovidesDirectAccessStotheglobalSymboltableAndalLowsunSintingGlobalVariles

ÉvitementsuperglobalsDirectlyInbusinessLogicByExtructing et banhizingInputEarly etPassingItExplicitlytofonctions; 2.CreatewrAPPERCLASSESESLIKEEREQUESTORSESSESSESTOCTOCK
