Wednesday, September 22, 2010

PHP Get Respon HTTP

Bila Anda perlu mengecek secara rutin sebuah website apakah UP atau DOWN untuk beberapa buah website secara manual yaitu mengunjungin-nya website tersebut melalui Browser adalah pekerjaan ringan.


Tetapi bagaimana bila kasusnya Anda harus mengecek website yang jumlahnya puluhan, tentunya cara manual rasanya kurang efektif, salah satu alternatif untuk melakukan itu adalah dengan membuat Tools Monitoring.

Tools Monitoring ini adalah berupa Script PHP untuk mengetahui sebuah page pada website apakah eksis/tidak eksis, untuk mengetahui apakah sebuah page dilakukan redirection atau untuk mengetahui apakah sebuah domain/link broken.

Cara kerja dari Script PHP ini adalah menangkap RESPON yang diberikan oleh Webserver dari sebuah website yang kemudian disajikan dalam bentuk yang lebih dapat dimengerti oleh manusia. Berikut ini adalah script-nya
$fp=fsockopen('www.php.net',80,$errno,$errstr);
if (!$fp) 
{
    echo  'Server Down / Domain Broken';
}
else
{
   $out ="GET /$filename HTTP/1.1\r\n"; 
   $out.="Host: $server\r\n"; 
   $out.="Connection: Close\r\n\r\n";
   fwrite($fp,$out);
   $result=fgets($fp);
   fclose($fp);
   echo $result;    
}
Pada script diatas adalah melakukan request ke www.php.net Hasil yang didapat adalah
HTTP/1.1 200 OK
HTTP/1.1 200 OK mengartikan Requested is Available

Bila mencoba request ke www.google.com hasil yang didapat adalah
HTTP/1.1 302 Found
HTTP/1.1 302 Found mengartikan Page has been moved temporarily alias dialihkan ke alamat lain.

Untuk melihat arti-arti dari Kode Respon dapat dilihat di klik ini

Dalam pengembangan dari script ini dapat dibuat menjadi sebuat tools untuk Check Availability Sebuah Host Web, seperti contoh dibawah ini


Source code
Untuk keperluan ini Anda dapat mendowload Script  httpStatus

Sample
Cara menggunakannya sebagai berikut:
include('httpStatus.php');
$rsp = new responClass();
$r = $rsp->getRespon('www.google.com');
echo 'Kode Respon : '.$r[0]
echo 'Kode Respon : '.$r[1].' milisecond'
//$rsp->setflush() //optional -> http://php.net/manual/en/function.ob-flush.php 

Spek yang digunakan pada Posting ini
  • PHP 5.3.2
  • OS Ubuntu Lucid Lynx

No comments:

Post a Comment