Wenn Sie heutzutage eine dynamische Homepage erstellen, "Starten Sie eine Linux-Instanz mit VPS", "Verteilen Sie Inhalte mithilfe eines serverlosen Frameworks", "Legen Sie sie mit K8S usw. in Container ab". Ich denke, der jüngste Trend geht zu "wahr".
Bis vor kurzem war es jedoch üblich, einen Mietserver zu mieten und CGI zu verwenden, um dynamische Inhalte bereitzustellen. Ich werde über dieses CGI erklären.
Apropos CGI, Perl und PHP werden häufig verwendet, Hier werden C-Sprache und Dart-Sprache angesprochen.
Es gab keine Geschichte, die ich für CGI in der Dart-Sprache verwendet habe, weder DuckDuckGo noch Google.
Der Grund, warum es keine gab, war natürlich die klassische Technologie. Wahrscheinlich, weil es in Zukunft nie benutzt wurde
Ist es um 2004-2006? PHP wurde weit verbreitet und viele Dienste wurden mit CGI gemacht. Viele sind keine Ingenieure. Auch solche Nicht-Ingenieure Es wurden Dienste geschaffen, die das ganze Bild erfassen und Geld verdienen konnten.
Im Vergleich zu Serverless wie React Vue Flutter und Firebase Lambda heutzutage Ich denke, das lag daran, dass es leicht zu lernen war.
CGI steht für Common Gateway Interface. https://en.wikipedia.org/wiki/Common_Gateway_Interface https://tools.ietf.org/html/rfc3875
Es bestimmt, wie interagiert werden soll, insbesondere zwischen dem Server und einem externen Programm. Im Gegensatz zum aktuellen Interface ist es super einfach.
In CGI wird die Anwendung durch Angabe der Parameter vom Server gestartet. Ruft die Standardausgabe der App als Rückgabewert ab.
Lassen Sie uns einen konkreten Blick darauf werfen.
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;
}
Angenommen, Sie haben eine App namens hello.cgi.
Diese App, wenn Sie den Befehl . / Hello.cgi
eingeben,
"""
Content-type: text/html
Hello,World!! """ Und es ist eine Anwendung, die nur die Zeichenfolge auf der Konsole anzeigt.
Wenn Sie in Ihrem Browser "http://example.com/hello.cgi" aufrufen, "Hallo Welt !!" wird im Browser angezeigt.
Rufen Sie auf diese Weise die App vom Server aus auf CGI kann die Ausgabe der App an den Benutzer zurückgeben
Wir haben eine Docker-Umgebung vorbereitet. Detaillierte Einstellungen finden Sie in der Docker-Datei.
$ git clone https://github.com/kyorohiro/dartlang_cgi.git
$ cd ./dartlang_cgi/001
$ docker-compose build
$ docker-compose up -d
Öffnen Sie VSCode im Docker Container in Ihrem Browser 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
Wenn Sie http://127.0.0.1:8080/ öffnen, wird ./app/www/index.html angezeigt.
Wenn Sie http://127.0.0.1:8080/cgi-bin/hello.cgi öffnen. Das Ausführungsergebnis von ./app/cgi/hello.cgi wird zurückgegeben
Durch Öffnen von http://127.0.0.1:8080/cgi-bin/hello_dart.cgi wird das Ausführungsergebnis von ./app/cgi/hello_dart.cgi zurückgegeben
Dart kann mit dart2native zu Native kompiliert werden. Ich benutze es diesmal.
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, Beschäftigen wir uns mit DB.
Recommended Posts