Kommunauty
Connexion
Inscription

Requêtes HTTP Client / Serveur


Notorius Messages : 589

Salut à tous,

Je suis en train de dèv une appli web qu'on utilise dans ma coloc' pour récupérer les horaires de bus.

J'ai une version de test qui tourne déjà donc de ce côté aucun problème. Par contre après la phase "je code vite et mal", j'en suis à la phase nettoyage et "optimisation" du code. Et c'est là que je me pose deux questions

La première concerne la requête du client au serveur. Pour l'instant je fais un simple GET avec les paramètres définis par l'utilisateur vers une fonction côté serveur qui va interroger une bdd. Elle renvoie ensuite un bout de code HTML avec les infos demandées. Une requête type ressemble à ça : ip-du-serveur/ligne/10

L'utilisateur reste sur la page principale et ne voit pas la requête, par contre s'il ajoute la requête dans l'url, le bout de code HTML s'affiche, normal me direz-vous. Ca me gêne pas spécialement, mais je me dis que l'utilisateur n'a pas forcément besoin de pouvoir accéder à la ressource ailleurs que là où je veux qu'il la voit. D'où ma question, quelle est la meilleure manière de faire ce genre de requête?

Il y a d'ailleurs une autre question qui me turlupine depuis un moment. Quand on voit des requêtes sur des sites web du genre http://site.com/?var1=param1&var2=param2& etc... Ce type de requête avec des '?' et des '&' c'est spécifique à PHP ou juste une manière "standard" de passer des arguments dans une url?

Merci d'avance

samedi 20 septembre 2014

Homer Messages : 1839

Salut,

pour le peut que je connaisse, pour moi c'est normal et c'est la bonne manière

D'ailleurs quand tu regarde le code source de nombreux site, tu trouve souvent ce genre de requête ajax.

Pour les ' ? ' et ' & ', aucune idée, en PHP c'est certain, pour d'autre langage, aucune idée

samedi 20 septembre 2014

Lucas Messages : 830

Les '?' et '&' c'est une convention des requêtes GET, donc ça marche pour tous les langages qui répondent à ces requêtes (JS/NodeJS et compagnie).

Pour ce qui est de ta question, ça me semble normal. Après, je n'ai peut-être pas compris, mais en général on s'arrange pour que la requête au serveur (ip-du-serveur/ligne/10 par exemple) retourne des données JSON, et tu en fais ce que tu veux depuis ta page d'accueil (ajax étou). Ça a l'avantage de centraliser la mise en page, séparer ce qui est donnée vs ce qui est affichage, et si jamais tu as besoin de ces mêmes infos ailleurs tu peux refaire une requêtes vers ip-du-serveur/ligne/10.

samedi 20 septembre 2014

Notorius Messages : 589

Merci pour vos rep ça m'aide à y voir un peu plus clair.

Après j'utilise bottle, un framework python pour remplacer PHP. Mais d'après ce que tu me dis Lucas le principe a l'air d'être le même, c'est juste qu'au lieu de renvoyer du JSON, je renvoie directement des morceaux de template avec les variables dedans.

Ca ressemble à ça :

        
<option>Ligne</option>
    % for id, name in lineList:
        <option value="{{id}}">
            {{name}}
        </option>
    %end

En essayant de toujours respecter comme tu disais la séparation données / affichage. Après c'est à la fois un projet et un exercice pour découvrir un peu JS et le dèv web en général.

EDIT : Ouais en fait le JSON a l'air de fournir une manière bien plus propre et plus standard de renvoyer des données que celle que j'utilise. Je vais m'empresser de tester cette méthode

samedi 20 septembre 2014 (Dernière édition dimanche 21 septembre 2014)

Notorius Messages : 589

Plop, je me permet de remonter ce topic plutôt que d'en créer un autre pour une deuxième question sur la "meilleure manière de faire".

Voilà un résumé de mon projet pour que vous puissiez comprendre où je veux en venir :

- J'ai une page unique sous la forme d'une appli web pour mobile

- La page générée contient des éléments statiques (du html, de la mise en page, etc...), et des éléments dynamiques qui sont rafraîchis à intervalle régulier (heure, météo, des choses de ce genre).

- Ma question concerne le premier chargement de la page par l'utilisateur, aucun soucis concernant le refresh des éléments.

Donc pour faire simple j'ai deux choix :

- Soit au premier chargement de la page, le serveur va lui-même chercher les éléments dynamiques (heure, date, etc...), générer la page et renvoyer le tout à l'utilisateur. Ensuite le JS côté client s'occupe de faire le refresh.

- Soit je génère une page sans les éléments dynamiques pour ensuite demander au JS d'aller les chercher au premier chargement et ensuite de les refresh.

Donc dans le 1er cas, l'avantage que j'y vois (arrêtez moi si je me trompe), c'est que le client obtient directement la première page sans avoir besoin de faire 2 ou 3 GET supplémentaires. L'inconvénient (toujours à mon avis) étant que je demande à deux langages différents de faire le même job au final.

Dans le 2è cas, j'imagine que c'est une manière plus propre et plus logique de faire les choses avec l'inconvénient pour le client d'avoir à charger du contenu supplémentaire après avoir chargé la page de base.

Après je dev une micro appli pour un usage perso hein, donc même si c'est pas optimisé niveau bande passante et charge serveur osef. C'est juste que je cherche à apprendre les bon réflexes dès le début en essayant de définir correctement le rôle du client et du serveur

lundi 2 mars 2015

Homer Messages : 1839

Alors là, bonne question.

Les requêtes côtés serveur libère le client, et inversement, donc c'est un débat sans fin.

Après, si le client refuse l'utilisation de JS (oui y'en a encore), que se passe-t-il ?

La page s'affiche-t-elle correctement ?

Pour une utilisation mobile, j'aurai tendance à plus faire travailler le serveur, pour ne pas surcharger le téléphone, qui suivant les modèles, peuvent être limite en mémoire.

lundi 2 mars 2015

OaladesSomatesTignon Messages : 171

Et si le client refuse l'utilisation du CSS, on fait comment ?

Pour ce qui est des téléphones, je confirme pour les problèmes de mémoire. J'en avais un qui m'affichait que la mémoire était dépassée et cet imbécile n'avait même plus assez de mémoire pour zoomer sur la page, donc je ne pouvais pas lire le bout qu'il avait chargé. xD

mardi 3 mars 2015 (Dernière édition mardi 3 mars 2015)

Notorius Messages : 589

Ouep elle s'affiche correctement même sans JS, les valeurs ne seront juste plus refresh. Merci pour le conseil homer je vais suivre sur cette voie et regarder ce que ça donne.

Ah bah si le client refuse le css là c'est caca, puisque mon design est extensible à coup de "%" et de "em". Mais bon comme je disais même si j'ai essayé d'assurer au max la comptabilité ça reste une appli pour un usage restreint donc pas de soucis de ce côté là.

mardi 3 mars 2015 (Dernière édition jeudi 8 septembre 2016)

Homer Messages : 1839

On peux refuser le css ?

mardi 3 mars 2015

Ryu Messages : 1976

Sinon c'est un point qui m’intéresse vu que je vais commencer à utiliser le même genre de techniques. J'imagine que la bonne chose à faire serait de privilégier les requêtes client si le traffic est important, et s'il est moindre, privilégier les requêtes serveur?

mardi 3 mars 2015

Page suivante »