Skrip contoh FastCGI

Menggunakan Perl

#!/usr/bin/perl
use CGI::Fast;
$req = 0;
while ($q = new CGI::Fast) {
  $req++;
  print "Content-Type: text/plain\n\n";
  print "req = $req, query var a = ", ($q->param('a') || "(empty)");
}

Jika dijalankan sebagai CGI (mis: diberi nama test.cgi) maka jika Anda melakukan refresh, nilai req tetaplah satu. Namun jika dijalankan sebagai FastCGI (mis: diberi nama test.fcgi), maka jika Anda melakukan refresh terhadap halaman web ini, nilai req akan terus bertambah: 1, 2, 3, … Ini berarti setelah sebuah request selesai, program tidaklah selesai/exit, melainkan menunggu lagi putaran loop berikutnya untuk melayani request baru. Dengan demikian, efisiensi meningkat drastis karena aplikasi tidak perlu direstart/dicompile ulang di setiap request.

Menggunakan Python

#!/usr/bin/python2.3
from flup.server.fcgi import WSGIServer
req = 1
def test_app(environ, start_response):
    global req
    req += 1
    start_response('200 OK', [('Content-Type', 'text/plain')])
    yield 'Hello, world! This is request #' + str(req) + '\n'

WSGIServer(test_app).run()

Sama seperti contoh Perl sebelumnya, angka request juga akan bertambah dari 1, 2, 3, … setiap kali halaman direfresh, menunjukkan bahwa instans aplikasi yang berjalan masih sama.

Menggunakan Ruby

#!/usr/bin/ruby
require 'fcgi'

FCGI.each do |request|
  request.out.print "Content-type: text/plain\r\n\r\n"
  request.out.print "This is a test."
  request.finish
end

Resita has written 702 articles