8 - CGI (Common Gateway Interface) CGI n ne olduunu...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: CGI (Common Gateway Interface) CGI n ne olduunu anlatmaya gemeden nce baz kavramlarn aklanmas gerekmektedir. Buna Web Server ve Client ile balamak yerinde olur. Web Server lar (HTTPd Server), Web sayfalarn zerinde bulunduran makinalardr. Bu makinalar genelde kendi zerlerinde bulunan Web sayfalarna erimek iin 80 numaral portu kullanrlar. Client ise, Web Server lar zerindeki Web sayfalarna erimek isteyen makinalardr. Client herhangi bir porttan Web Server ile iletiim kurabilir. Stdin standard input un ksaltlmdr ve server asndan client n server a gnderdii veriler anlamna gelir. Stdout standard output un ksaltlmdr ve server n client n gnderdii verileri ilemesi sonucunda client a gnderdii sonu bilgisi anlamna gelir. Yukardaki aklamalardan da anlald gibi, HTTP protokol, server dan client a ve client tan server a veri aktarmn destekler. Client n server a veri gnderebilmesi, formlar araclyla olur. Form, client n server a veri ulatrmasn salamak amacyla HTML dili kullanarak yazlm Web sayfalardr. Kullancnn (client) form araclyla server a gnderdii bilgiyi ileyecek server tarafnda alan bir programa ihtiya vardr. Bu programa gateway program denir. CGI (Common Gateway Interface), client n gnderdii input verileri alp, gateway programna veren (gateway programnn almasn salayan) ve programn ktsn tekrar client a ileten, ksaca server ve server tarafndaki gateway programlar arasnda iletiimi salayan, bir arayz, protokoldr. Bir Web Client programnn (Web browser), HTTP server na veri gndermesini salamak iin hazrlanan formlar, HTML diliyle aadaki gibi balar: <FORM ACTION=URL METHOD=get | post> .. .. </FORM> Action seeneinde belirtilen URL, formun doldurulduktan sonra, hangi Web server daki hangi program tarafndan ilenecei bilgisini ifade eder. Method seenei ise, formun Web server na hangi methodla ulatrlacan belirtir. Yukardan da anlalaca gibi, formdaki bilgiler iki methodla ulatrlabilir. Get metodu kullanlrsa, veri evresel deikenler aracl ile, Web Server a ulatrlr. Bu metodla btn form bir query_string deikeninin iine konur, action ksmnda belirtilen adres ve programn sonuna eklenir ve tek bir URL olarak gnderilir. http://bla.bla.edu./stuff/program?query_string Veri bykl snrlandrlmtr. Bu yntem kullanld zaman, actionda belirtilen URL nce decode edilmelidir, nk form doldurulup, submit edildiinde, browser btn bilgiyi URLencode eder. Decode ilemi bir CGI script (gateway program) ile yaplabilir. Yukarda submit edilen URL incelendiinde, soru iaretine kadar olan ksmn, formun action ksmnda yer alan adres ve program olduu grlr. Soru iaretinden sonraki ksm ise, gnderilen verilerin yer ald deikendir. Post metodu kullanldnda ise, CGI veriyi stdin olarak, alr ve btn evresel deikenlere gerekli atamalar yapar. Veri zerinde herhangi bir byklk snrlamas yoktur. Verinin gateway program tarafndan ilendikten sonra, client a geri gnderilmesine gelince; ktlar MIME ktlar, redirection ve nonparsed Headings olmak zere ekilde gnderilebilir. Sadece MIME ktlara genel olarak bakalm: ktnn MIME type gnderilmesi, herhangi bir Web sayfas, ses veya video dosyas ya da sade text olmas demektir. Gateway program, standard output un MIME tipini belirten balk mesajlarn koymak ve altna bir de bo satr brakmak zorundadr. rnein; Content-type: MIME type (text/html) Data Data Bir gateway in kullanm amalar ok eitli olabilir. Bir rnek vermek gerekirse; bir Web server zerindeki bir veri taban zerinde, bir bilginin, verilen bir keyword araclyla aratrlmas bir gateway programyla halledilebilir. Bir gateway program herhangi bir programlama diinde yazlabilir. Fakat, bir gateway yazmak iin en ok tercih edilen programlama dilleri unlardr: C, C++, Fortran, Perl, TCL, herhangi bir Unix Shell, Visual Basic, AppleScript. Script diliyle yazlm programlarn kendileri server a konur, dier dillerde yazlm programlarn ise derlenmi hali server a konur. Derlenmi hali server a konan programlarn source kodlar da bilgi amacyla genelde konur. CGI real time altrlr, yani client ne zaman altrmak isterse, CGI bu istei alr, verileri evresel deikenlere aktararak gateway e gnderir ve gateway i altrmaya balar ve kt programn almas bitince, CGI tarafndan alnp, client a gnderilir. Gateway lerin server a konmas iin iki yol izlenebilir: Bunlardan birincisi, herkes kendi dizini altna programn koyar ve bir de hangi uzantl dosyalarn server tarafndan cgi olarak kullanlacann server a bildirilmesi iin bir .htaccess dosyas hazrlar. Fakat, bu yntem pek tercih edilmez, nk gvenli gateway program yazmak kolay bir i deildir. Gateway ler real time altrldndan, kt niyetli kiiler, gateway I server I zor durumda brakacak ekilde kullanabilirler. Bunu engellemek iin, gatewayler server zerinde ayr bir dizin altnda tutulurlar. (cgi-bin dizini) Gateway programlar, bu dizine sadece Webmaster larn bilgisi ve izni dahilinde konulabilir. ...
View Full Document

This note was uploaded on 02/23/2012 for the course CS CS281 taught by Professor Özgürulusoy during the Winter '12 term at Bilkent University.

Ask a homework question - tutors are online