De nos jours, lors de la création d'une page d'accueil dynamique, "Lancer une instance Linux avec VPS", "Distribuer du contenu à l'aide d'un framework sans serveur", "Déposez-le dans un conteneur à l'aide de K8S, etc." Je pense que la tendance récente est au "vrai".
Cependant, jusqu'à récemment, il était courant de louer un serveur de location et d'utiliser CGI pour fournir du contenu dynamique. Je vais vous expliquer ce CGI.
Aussi, en parlant de CGI, Perl et PHP sont souvent utilisés, Ici, le langage C et le langage Dart sont ciblés.
Il n'y avait pas d'histoire que j'ai utilisée pour CGI dans le langage Dart, que ce soit DuckDuckGo ou Google.
Bien sûr, la raison pour laquelle il n'y en avait pas était la technologie classique, Probablement parce qu'il n'a jamais été utilisé à l'avenir
Vers 2004-2006, PHP s'est généralisé et de nombreux services ont été créés avec CGI. Beaucoup ne sont pas des ingénieurs. Même ces non-ingénieurs Des services capables de saisir une vue d'ensemble et de gagner de l'argent ont été créés.
Comparé à Serverless comme React Vue Flutter et Firebase Lambda ces jours-ci Je pense que c'était parce que c'était facile à apprendre.
CGI signifie Common Gateway Interface. https://en.wikipedia.org/wiki/Common_Gateway_Interface https://tools.ietf.org/html/rfc3875
Il détermine comment interagir, notamment entre le serveur et un programme externe. C'est super simple contrairement à l'interface actuelle.
Dans CGI, l'application est lancée en spécifiant les paramètres du serveur. Obtenez la sortie de sortie standard de l'application comme valeur de retour.
Jetons un regard concret.
hello.c
// hello.c
// gcc hello.c -o hello.cgi
#include<stdio.h>
int main(int argc, char* argv[]) {
printf("Content-type: text/html\n\n");
printf("Hello,World!!\n");
return 0;
}
Supposons que vous ayez une application nommée hello.cgi.
Cette application, lorsque vous entrez la commande . / Hello.cgi
,
"""
Content-type: text/html
Hello,World!! """ Et c'est une application qui affiche uniquement la chaîne de caractères sur la console.
Si vous appelez "http://example.com/hello.cgi" depuis votre navigateur, "Hello, World !!" s'affiche dans le navigateur.
De cette façon, appelez l'application depuis le serveur CGI peut renvoyer la sortie de l'application à l'utilisateur
Nous avons préparé un environnement Docker. Veuillez vous référer au fichier Docker pour les paramètres détaillés !!
$ git clone https://github.com/kyorohiro/dartlang_cgi.git
$ cd ./dartlang_cgi/001
$ docker-compose build
$ docker-compose up -d
Ouvrez VSCode dans le conteneur Docker dans votre navigateur http://127.0.0.1:8443
$ apache2
$ cd /app/www/cgi
$ gcc hello.c -o hello.cgi
$ dart2native hello_dart.dart -o hello_daet.cgi
Lorsque vous ouvrez http://127.0.0.1:8080/, ./app/www/index.html s'affiche.
Lorsque vous ouvrez http://127.0.0.1:8080/cgi-bin/hello.cgi. Le résultat de l'exécution ./app/cgi/hello.cgi est renvoyé
L'ouverture de http://127.0.0.1:8080/cgi-bin/hello_dart.cgi renverra le résultat de l'exécution de ./app/cgi/hello_dart.cgi
Dart peut être compilé en natif à l'aide de dart2native. Je l'utilise cette fois.
main(List<String> args) {
print("Content-type: text/html\n\n");
print("Hello,World From Dart!!\n");
return 0;
}
https://github.com/kyorohiro/dartlang_cgi
GET, POST, Cookie, Traitons avec DB.
Recommended Posts