Perl yorumlanmış bir dildir ve Pratik Çıkarma ve Rapor Dili anlamına gelir (pratik veri çıkarma ve raporlama dili).
Örneğin Perl ile, bir veya daha fazla dosyayı açan, bilgileri işleyen ve sonuçları yazan bir komut dosyası oluşturabilirsiniz.
Perl, ortak bir iletişim arayüzü olan Common Gateway Interface (CGI) aracılığıyla web sunucuları ile iletişim kurmak için harika bir araçtır.
Perl komutları, bir HTML formundan veya başka bir kaynaktan kolayca veri alabilir ve onunla bir şeyler yapabilir.
Perl Barındırma
Sadece geçmişte popüler olmakla kalmayıp günümüzde web geliştiricileri tarafından hala kullanılan bir başka programlama dili Perl'dir. Dilin adı - "veri çıkarma ve raporlama için pratik bir dil" anlamına gelir. Perl, özlü ve verimli uygulamalar, sistem programları geliştirmek için geniş fırsatlar sağlar.
Perl için barındırma sağlamak herhangi bir özel özellik gerektirmez. Perl özellikli barındırma iki şekilde çalışır - CGI veya mod_perl. Dil, hızı ve güvenilirliği ile karakterizedir. Perl dağıtımları tüm platformlar için mevcuttur. Bunu umut verici bir yönde düşünürsek, o zaman tüm umutlar dilin altıncı versiyonunun yayınlanmasıyla ilişkilidir. Ayrıca, olasılık, modern Perl çerçevelerinin kullanılmasıdır, örneğin, Catalyst.
Bu programlama dilinin bir özelliği, tüm barındırma kullanıcıları için ortak olan CPAN modül kitaplığıdır. Çok miktarda belge ve yazılım içerir. Perl barındırmanın kalitesi ve performansı bu içeriğe bağlıdır.
Perl, ilan tahtaları gibi dinamik web sayfaları oluşturmanıza izin veren Perl adlı bir programlama dilidir.
Perl, bir web sunucusunda CGI mekanizmasını kullanan bir programlama dilidir. Perl dilinde yazılmış bir program çalıştırılarak, CGI başlatılabilir ve dinamik bir web sayfası oluşturulabilir.
Perl, JavaScript'ten farklı olarak sunucu üzerinde çalışan bir sunucu tarafı teknolojisidir.
CGI kiralama sunucusunda (paylaşılan sunucu) kontrolden çıkarsa ve sunucu kapanırsa, kullanım kısıtlamalarının ortaya çıkabileceği unutulmamalıdır.
CGIbülten tahtaları ve sohbetler gibi dinamik web sayfaları oluşturan bir sunucu tarafı programı olan [Ortak Ağ Geçidi Arayüzü] 'nün kısaltmasıdır. CGI kullanarak Ruby, Python ve Perl gibi programlama dillerini kullanarak dinamik web sayfaları oluşturabilirsiniz. Orijinal bir erişim sayacı veya alışveriş sepeti oluşturabilir ve web sitesinde yayınlayabilirsiniz. Şu anda birçok web sunucusu tarafından kullanılmaktadır. CGI, Perl, Ruby ve C dahil herhangi bir dilde kullanılabilir, ancak en popüler olanı Perl dilidir.
Perl Hosting Arka Planı
Perl, UNIX OS ve Windows OS gibi birçok platformda çalışabilen bir programlama dili olan [Practical Extraction and Report Language] 'in kısaltmasıdır. Dil 1987 yılında Larry Wall tarafından geliştirilmiştir. Web uygulaması oluşturma, sistem yönetimi, metin işleme vb. İçin bir geliştirme programlama dili olarak yaygın olarak kullanılmaktadır. Özellikle, metin arama ve çıkarma gibi dosya işlemede üstündür. Perl, programlama dilleri arasında betik diline aittir.
Komut dosyası dili, bir komut dosyası gibi yazması ve çalıştırması nispeten kolay olan bir programı yorumlayan ve çalıştıran bir programlama dili türü için genel bir terimdir. Ek olarak, yazılı programın özelliklerinden biri, yürütmeye kadar olan prosedürün basitleştirilmesi ve sonucun hemen çıkarılabilmesidir. İyi bilinen komut dosyası dilleri arasında JavaScript, Perl, Python, PHP ve Ruby bulunur. Perl, GPL olarak ücretsiz olarak dağıtılır (GNU Genel Kamu Lisansı: yazılım lisansı = özgür yazılım lisansı).
Perl'in gösterimi C'ye benzer, ancak C'nin ve sed, awk ve kabuk komut dosyaları gibi diğer programlama dillerinin harika özelliklerini içerir. Derleme işlemi gerektirmeyen bir yorumlayıcı türü olduğu için (bilgisayarda yürütülebilecek bir formata dönüştürme), bir program yazıldıktan hemen sonra çalıştırılabilir.
Komut dosyası dillerinde bile yüksek hızlı işleme yeteneğine sahiptir ve geriye dönük uyumluluğu yüksektir (eski sürümlerle uyumluluk).
Ayrıca modül olarak yeni işlevler de ekleyebilirsiniz. Örneğin, Benchmark, base, Encode, utf8, file :: Basename, File: Copy, File: Path, File: Spec, File: Temp, Net: FTP, Scalar: Util, Storageable, Sys: Ayrıca Hostname, Time: Piece, FindBin gibi standart olarak kullanılabilen birçok modülün olması büyük bir özelliktir.
Ayrıca çapraz platformdur ve UNIX benzeri işletim sistemleri, Windows tabanlı işletim sistemleri, Mac OS, Linux OS ve Apache ve IIS gibi web sunucuları dahil olmak üzere çoğu sunucu türünde çalışabilir.
Bir kenara, geliştirici, "pratik veri toplama raporu oluşturma dili" anlamına gelen Pratik Çıkarma ve Rapor Diline ek olarak, Patolojik Olarak Eklektik Çöp Listesinin gizli anlamı olan "patolojik olarak kederli önemsiz çıktı cihazı" olduğunu söyledi.
Perl'de CGI web barındırma nasıl çalışır?
CGI terimi, Ortak Ağ Geçidi Arayüzünden gelir. API (Uygulama Programlama Arayüzü) olarak bildiğimiz şeyin başka bir tanımıdır. Hikayenin özeti, CGI sadece web sunucusu için bir API'dir.
Web sunucusu, web sayfalarını web tarayıcılarına (tarayıcılar gibi tarayıcılar) gönderen bir yazılımdır.Internet ExplorerveyaNetscape). Teknik olarak, tarayıcılar web olarak adlandırılmalıdıristemciler ve bunları kullanan kişiler tarayıcı olarak adlandırılmalıdır.
İnternette CGI hakkında pek çok bilgi var, ancak çoğu zaman uyumsuz ve efsaneler ve önyargılarla dolu. CGI olmadığını bildirerek bazı şüpheleri açıklığa kavuşturalım.
CGI bir programlama dili değildir: bu, bir CGI programı yazmak için seçtiğiniz herhangi bir dili kullanabileceğiniz anlamına gelir. Açıktır ki, seçilen dil bir "girdi" okuyabilir ve bir "çıktı" yazabilir. Bu tür olanaklar sunmayan herhangi bir programlama dili biliyor musunuz?
Perl diline ihtiyacınız yok. Perl, PHP, C, Phyton, Object Pascal, vb. Gibi diğer diller gibi kullanılabilir. Sadece Unix sistemlerindeki uzmanlar için değildir. Aslında uzman olmaya gerek yok, temel programlama becerileri fazlasıyla yeterli.
Bu bir programlama stili değildir. Kendi stilinizi kullanın, çünkü sadece "girdi" ve "çıktı" ile web sunucusunu CGI ile "sohbet" edebiliriz.
Şaka gibi geliyor, ancak bir web sunucusu sadece bekler - siteye toplu olarak erişilmediği sürece.
Web sunucusunun beklediği şey bir istemciden başka bir şey değildir, dosya isteyen bir tarayıcıdır. Bu dosya bir HTML sayfası, grafik veya başka herhangi bir dosya türü olabilir.
Web sunucusu bir istek aldığında, aşağıdaki sırayla üç görevi gerçekleştirir:
Gönderilecek dosyanın türünü, yani HTML, GIF, JPEG veya diğerlerini içeren bir satır sığ metin gönderin;
Boş bir satır gönderin;
Dosyanın içeriğini gönderir.
Web Sunucusu dosyaları nasıl gönderir?
Teker teker. Şaşırtıcı bir şekilde, sadece bir.
Tipik bir web sayfasının bir HTML belgesi ve bazı grafiklerden oluştuğunu biliyoruz. Her biri, tarayıcıya gönderilmesi gereken farklı bir dosyadır. Web sunucusu bir seferde yalnızca BİR dosya gönderdiğinden, tarayıcının ihtiyaç duyduğu her dosya için yeni bir oturum (istek) başlatması gerekir. Neyse ki, hem web sunucusu hem de tarayıcı çoklu görev yapıyor. Tarayıcı aynı anda birkaç dosya isteyebilir ve web sunucusu aynı anda birkaç dosya gönderebilir, ancak istenen-gönderilen dosyaların her biri için ayrı bir oturum gerekir.
Web sunucusu yalnızca dosya gönderebilir mi?
Şart değil. Aslında olan sadece bir veri aktarımıdır. Sunucunun ve istemcinin (tarayıcı) genellikle farklı bilgisayarlarda çalıştığını unutmayın. Hatta farklı mikroişlemcilere sahip makinelerde farklı işletim sistemlerini kullanabilirler. Tarayıcı yalnızca bir "kaynak" ister ve sunucunun verileri nereden aldığını bilmez ve bilmesine de gerek yoktur.
Bununla birlikte, tipik bir sunucu, verilerini bir dosyadan almak üzere programlanmıştır. Dosyadaki verileri basitçe okur ve istemciye iletir. Bu işlemin bir sonucu olarak, sunucu yalnızca statik verileri gönderir, yani sunucu gönderilen verileri dinamik olarak değiştirmez.
Dinamik veri göndermek için ne yapmalı?
Hiç de zor değil. CGI, bu işlevi tam olarak yerine getirmek için tasarlanmıştır. Dinamik olarak veri üreten bir program yazarsınız ve bu veriler bir dosya yerine tarayıcıya gönderilir.
Bu, bir CGI programının bir sunucunun işlevselliğini, örneğin bir DLL'nin Windows'un işlevselliğini genişletmesi gibi, nasıl genişlettiğidir. Ancak büyük bir fark var: CGI, Windows için yazmaktan çok daha basittir.
Ancak tarayıcıyla nasıl konuşulur?
Tarayıcı ile konuşmanıza gerek yoktur. Bu işi yapan sunucudur. Oyunun en iyi yanı, sunucuyla konuşmanıza bile gerek kalmamasıdır. Tek yapmanız gereken standart çıktıya (standart çıktı) yazmaktır. Aynı şekilde, örneğin, C dilinden printf () kullanırsınız.
Gözden kaçırılamayacak tek şey, bir veri iletiminde sunucu tarafından gerçekleştirilen üç görevin sırasıdır (yukarıda belirtilmiştir). Sunucu göndereceğiniz verinin türünü bilmediğinden, standart çıktıyı bu bilgilerle sağlamanız gerekir.
Yukarıda kendi tarzınızı kullanabileceğiniz söylendi. Pekala, hadi: varsayalım sunucunuz DOS altında çalışıyor. Nitekim böyle bir sunucu yok ama Windows sunucuları var ve Windows MS-DOS komutlarını yorumlayabiliyor. Dolayısıyla, mevcut dizininizin bir listesini web'e göndermek istediğinizi hayal edin (bu iyi bir fikir değildir, ancak bu görevin ne kadar basit olduğunu gösterir). MS-DOS, dizin listesini standart çıktıya gönderen doğrudan komuta da sahiptir. Yani teorik olarak aşağıdaki senaryoyu üretebiliriz:
1. Görev: gönderilecek veri türünü tanımlayın:
2. Görev: boş bir satır gönderin:
3. Görev: içeriği gönder:
Yukarıdaki örnek, çoğu insanın bildiği öğeleri kullanarak bir CGI betiğinin nasıl çalıştığının bir simülasyonudur. Sadece çıktı ilkesini anlamak ve gerçekten işe yaramamak için alıntılanmıştır. Şimdi, bir adım daha ...
Nasıl girdi alınır?
Her şeyden önce, web'in etkileşimli olmadığı çok açık olmalı. Bu, CGI programınızın kullanıcılardan girdi talep edemeyeceği, bunları işleyemeyeceği, bazı sonuçlar (çıktı) gönderemeyeceği, başka bir girdi isteyemeyeceği anlamına gelir.
Bir CGI programlamanın çok basit olmasının nedeni tam da budur. Program başlangıçta kullanıcıdan yalnızca bir kez girdi alır ve yalnızca bir yanıt (çıktı) gönderir.Bununla birlikte, hem girdi hem de yanıt, programınızın ne tutabileceğine bağlı olarak herhangi bir boyutta ve karmaşıklıkta olabilir.
Bununla birlikte, tarayıcının onu sunucuya göndermek için kullandığı yönteme bağlı olarak, programınızın iki şekilde kullanıcı girişi alabileceğini bilmeniz gerekir.
Tarayıcı, kullanıcı girişini nerede bulur?
Tarayıcı, HTML formları kullanarak girişi kabul eder. Bir form, tarayıcıya iki yöntem kullanarak veri göndermesi talimatını verebilir: GET ve POST.
GET yöntemi, girişleri URL'nin bir parçası olarak gönderir. POST yöntemi girdileri stdin olarak gönderir. İkinci yöntemin bazı avantajları var gibi görünüyor:
Daha fazla veri göndermek mümkündür (URL'nin bir boyut sınırı vardır);
Veriler, günlük dosyalarına kaydedilmez. Örneğin: bir URL'nin parçası olarak bir şifre göndermek, verilerin içinden geçtiği çeşitli sistemlerde bir iz bırakır !;
Veriler tarayıcının adres alanında görünmez. Yine, tarayıcıda bir şifre göstermek kullanıcının beğenisine uygun olmayabilir.
Hangi yöntemin kullanıldığını nasıl bilebilirim?
Web sunucusu, CGI programını yüklemeden önce bazı bağlam değişkenlerini başlatır. Girdi verilerinin miktarını ve kaynağını bilmek için bu değişkenleri analiz edebilirsiniz.
Bağlam değişkenlerinden biri REQUEST_METHOD'dur. Değeri POST, GET ve sonunda HEAD olabilir.
REQUEST_METHOD, POST'u gösteriyorsa, CONTENT_LENGTH değişkeni, stdin aracılığıyla kaç bayt verinin okunması gerektiğini gösterecek ve CONTENT_TYPE değişkeni, verilerin bir formdan (veya muhtemelen başka bir kaynaktan) geldiğini gösterecektir.
Veriler alındıktan sonra (sunucu tarafından okunduğunda), hemen işlenebilir ve yanıt (çıktı) bir stdout aracılığıyla gönderilebilir. Cevap genellikle gerekli tüm biçimlendirmelerle birlikte HTML verileri biçiminde yazılır. Ancak CGI programları, bir GIF dosyası veya başka herhangi bir şey gibi her türden yanıt üretebilir.
Tarayıcıya aktarımın ilk 2 aşamasında gönderilecek verinin türünü belirtmenizin nedeni budur. HTML verilerini Content-type string: text / Html (görev 1) ve ardından boş bir dize (görev 2) göndererek tanımlayabiliriz. C dilini kullanarak printf ("İçerik türü: metin / Html \ n \ n"); burada \ n bir satır sonu ve ikinci \ n boş satırı belirtmek için başka bir satır sonu.