Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Post-redirect-get — Wikipédia
Post-redirect-get — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir PRG.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources (octobre 2014).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
Diagramme d'un problème de soumissions multiples.
Diagramme de la résolution du problème avec le pattern PRG.

Post-redirect-get ou post/redirect/get (PRG), aussi nommé redirect after post, est un patron de conception très répandu dans la programmation web. Il permet de résoudre une partie des problèmes de soumissions multiples d'un formulaire, ainsi que de moins perturber le fonctionnement des marque-pages et de la commande "page précédente" des navigateurs web.

Problème de soumissions multiples de formulaire

[modifier | modifier le code]

Lorsqu'un formulaire web est soumis à un serveur à travers une requête HTTP POST, un internaute rafraîchissant la réponse du serveur peut provoquer la réémission de la requête HTTP POST originale, pouvant provoquer des résultats indésirables, comme la répétition d'un achat. Certains navigateurs affichent un message d'avertissement avant le ré-envoi du formulaire, mais rien n'empêche celle-ci d'avoir quand même lieu.

Afin d'éviter ce problème, de nombreux développeurs web emploient le pattern PRG[1] : au lieu de directement retourner une page, la requête POST retourne un en-tête (header) de redirection. Une implémentation correcte des spécifications HTTP 1.1 exige que l'application web retourne une réponse HTTP 303 dans cette situation, assurant ainsi que le navigateur peut effectuer un rafraîchissement de la page sans répéter la soumission de la requête POST.

Le pattern PRG ne permet pas de résoudre la totalité des scénarios pouvant entraîner des soumissions multiples. Par exemple, le pattern PRG ne résout pas les scénarios suivants :

  • L'utilisateur revient sur la page du formulaire et soumet celui-ci à nouveau.
  • L'utilisateur clique plusieurs fois sur le bouton de soumission avant le chargement de la réponse du serveur (on peut s'en prémunir avec du JavaScript désactivant le bouton après le premier clic).
  • L'utilisateur rafraîchit la page avant que la soumission initiale soit achevée (à cause du délai de réponse du serveur), générant une requête POST supplémentaire avec certains navigateurs.

Notes et références

[modifier | modifier le code]
  1. ↑ (en) Wendy Chisholm et Matt May, Universal Design for Web Applications : Web Applications That Reach Everyone, O'Reilly Media, novembre 2008, 208 p. (ISBN 978-0-596-51873-8, présentation en ligne, lire en ligne), p. 36

Sur les autres projets Wikimedia :

  • Post-redirect-get, sur Wikibooks
v · m
Patrons de conception
Création
  • Fabrique abstraite
  • Monteur
  • Fabrique
  • Prototype
  • Singleton
Structure
  • Adaptateur
  • Pont
  • Composite
  • Décorateur
  • Façade
  • Poids-mouche
  • Proxy
Comportement
  • Chaîne de responsabilité
  • Commande
  • Interpréteur
  • Itérateur
  • Médiateur
  • Mémento
  • Observateur
  • État
  • Stratégie
  • Patron de méthode
  • Visiteur
Fonctionnel
  • Fermeture
  • Curryfication
  • Composition de fonctions
  • Foncteur
  • Monade
  • Générateur
Patron d'architecture
  • ADR (en)
  • Active record
  • Broker (en)
  • Client-serveur
  • DAO
  • Data mapper
  • DTO
  • DDD
  • ECB
  • ECS (en)
  • EDA
  • Front controller (en)
  • Identity map (en)
  • Interceptor (en)
  • Implicit invocation (en)
  • Inversion de contrôle
  • Model 2 (en)
  • MOM
  • Microservices
  • MVA (en)
  • MVC
  • MVP
  • MVVM
  • Application monolithe
  • Architecture en couches
    • trois tiers
  • Naked objects (en)
  • Pair-à-pair
  • Publish-subscribe
  • PAC
  • POC
  • REST
  • SOA
  • Service locator (en)
  • SN (en)
  • SBA (en)
  • Specification (en)
Autres patrons
  • Modèle de Seeheim
  • Mémoïsation
  • Post-redirect-get
  • Support d'initialisation à la demande
  • Signaux et slots
  • Désignation chaînée
  • Double-checked locking
  • MapReduce
  • Reactor
  • Fonction de rappel
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail d’Internet
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Post-redirect-get&oldid=220300869 ».
Catégorie :
  • Patron de conception
Catégories cachées :
  • Article manquant de références depuis octobre 2014
  • Article manquant de références/Liste complète
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Internet/Articles liés
  • Portail:Médias/Articles liés
  • Portail:Société/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id