"Web çöktü ve bu tamamen sizlerin suçu." Bunlar, PHP'in yaratıcısı Rasmus Lerdorf'un, Toronto'daki phpl works konferansının açılış konuşmasında sarf ettiği cümleler böyleydi. Lerdorf tehlikeye dikkatleri kendi vurucu uslubu ile çekmeye çalıştı.
Lerdorf Internet'in şu an ki durumunu "hasar görmüş parçaların tekrarı" olarak niteliyor ve internet için hala kalan tek umudun PHP'den alınacak yardım olabileceğini söylüyor.
PHP'i 1995 yılında yaratmış olan Lerdorf, Yahoo'da görevli bir PHP geliştiricisi olmasının yanı sıra PHP camiasının da aktif üyelerinden. PHP de, pek çok açıdan değerlendirildiğinde, günümüzde Web uygulamalarında kullanılan en popüler betik dili olarak kabul ediliyor.
Kendisini izlemekte olan kalabalığa oldukça iğneleyici bir dille :
Web oldukça büyük bir zarar gördü, dolayısıyla artık hepimiz evlerimize geri dönebiliriz.
Ama neyse ki, pek çok insan Web'in çöktüğünün farkında değil.
Lerdorf'un Web'i "çökmüş" olarak addetmesinin sebeplerinden birisi, Web'in doğası gereği taşıdığı güvenlik sorunları. Bu sebeplerden birisi ise geliştiricilerin hemen gözlerinin önünde yatıyor. Lerdorf :
Kullanıcı girdilerini filtrelemeniz gerektiğinin farkında bile değilsiniz.
diyor. Lerdorf, PHP geliştiricilerine, kablolar aracılığı ile kendilerine ulaşan hiçbir şeye güvenmemelerini tavsiye ediyor.
Lerdorf'un Apache HTTP Web sunucusu için "ahmaklık" tabirini kullanıyor. Benzer şekilde Microsoft Internet Explorer için;
Ama, karakter seti saptaması, keyfi başlık enjeksiyonu (arbitrary header injection), host header spoofing (host başlığı yanıltımı) ve request splitting (talep bölünmesi) gibi "ahmaklık" vakalarının yaşandığı Microsoft'un Internet Explorer'ı da var.
diyor ve Lerdorf bunu şöyle özetliyor :
IE pek çok açıdan tamamen çökmüş durumda.
Ama PHP sayesinde IE'nin çökme sebeplerinden bir kaçının üstesinden gelinebilir
Karakter seti saptaması söz konusu olduğunda Lerdorf geliştiricilere, PHP uygulamalarında default bir "charset" atadıklarından emin olmalarını salık veriyor.
PHP 5, geliştiricilerin Web'in "çökmesini" engellemelerine yardımcı olacak filtre talepleri için gerekli olan tüm işlevselliği sunuyor. Lerdorf
Her şeyi filtrelemeli ve ardından bu filtrelerde veri akışı için küçük delikler açmalısınız.
tavsiyesinde bulunuyor. Örneğin AJAX ve Web servislerince kurulan Zengin Web uygulamaları, modern Internet'in kilit noktalarını oluşturur. Artık, gelişimin performansı ve rahatlığı oldukça çökmüş durumda.
Lerdorf, Yahoo'nun konuşlandırdığına benzer zengin Web uygulamalarının, fevkalade yanıt sürelerine sahip olmaları ve yüksek sayıda kullanıcı ile başa çıkabilmeleri gerektiğini vurguluyor.
Lerdorf izleyicilere, Ubuntu Linux işletim sistemi çalıştıran temel bir 1.8 GHz AMD Athlon CPU sağlayıcısı üzerinde zengin uygulama servis performansını nasıl optimize edebileceklerini de gösterdi.
PHP yaratıcısı, referans olarak başlangıçta default ayarları ile sadece saniyede 17 talebe cevap verebilen uygulama çalıştırma sürecini izleyicilere gösterdi.
Sunduğu optimizasyon süreci, sonunda aynı donanım aynı uygulamaları çalıştırdığı halde, saniyede 1,100 talebe yanıt verebiliyordu ve 10 mili-saniyeden kısa bir yanıt süresi ile çalışmaktaydı.
Lerdorf'un önerdiği kod analizi temelli performans iyileştirmelerinden birisi, veri-tabanı için PostgreSQL yerine MySQL kullanmaktı. Lerdorf
Eğer probleminizi MySQL'in halledebileceği bir boyuta indirgerseniz, çözüm çok hızlı olacaktır. Performansta da epeyce bir artış sağlarsınız.
diyor. MySQL'in, PostgreSQL kadar başarılı olamadığı problemler içinse Lerdorf, PHP'nin kendi içerisinde bazı özelliklerini taklit edilebileceklerini ve bu sayede yine net bir performans artışı elde edilebileceklarini belirtiyor.
Ayrıştırma ve derleme hızları da, opcode bir önbellek kullanımı ile hatırı sayılır oranlarda yükseltilebiliyor. Pek çok betikleme dilinde olduğu gibi PHP'de de kodlar insanların anladığı bir dil yapısından, makine dili yapısına çevrilmektedir. PHP'de makine-dilindeki betikler, opcodes olarak adlandırılır.
Opcode bir önbellek, derlenen kodu paylaşılan hafızada depolar veya bellekler ve bu sayede benzer işlemler için kod derlenmesine sadece bir kez ihtiyaç duyulmuş olur. Halen geliştirilmekte olan PHP 6, default olarak kurulu bir opcode önbelleğe sahip olacak.
Günümüz PHP 5 kullanıcıları için, aralarında Lerdorf'un da önerdiği Alternative PHP Cache'nin (Alternatif PHP Önbellek-APC) de bulunduğu çeşitli opcode önbellek uygulamaları mevcut. Lerdorf
Yahoo'daki her sunucuda [APC] mevcuttur ve APC günlük olarak milyarlarca talebe cevap veriyor.
diyor. PHP 5.2 ayrıca, Lerdorf'un kullanımının çok zor olduğunu belirttiği ve "çok karmaşık" olarak nitelediği SOAP'ı kullananlar dahil tüm geliştiricilerin Web servislerini geliştirmelerini ve konuşlandırmalarını kolaylaştırıyor.
"Basit" XML veri kullanımlarına olanak tanıyan bir PHP uzantısı olan SimpleXML ile, Web servislerinin karmaşıklığının büyük bir kısmı soyutlanabilir.
Lerdorf bir örnek olarak kendisinin yazdığı ve SimpleXML aracılığı ile veri çekebilen bir on-line RSS ayrıştırıcısını, sunumu esnasında seyircilere gösterdi.
Lerdorf sunumunu, PHP'nin SOAP aracılığı ile bile, bir Web servisi kadar kolay bir biçimde nasıl kullanılabileceğini göstererek sürdürdü.
------------------------
yazının önemli olduğunu düşünerek tamamını ekledim
turk.internet.com dan alınmıştır. Metnin orjinali http://www.internetnews.com/dev-news/article.php/3631831
Lerdorf Internet'in şu an ki durumunu "hasar görmüş parçaların tekrarı" olarak niteliyor ve internet için hala kalan tek umudun PHP'den alınacak yardım olabileceğini söylüyor.
PHP'i 1995 yılında yaratmış olan Lerdorf, Yahoo'da görevli bir PHP geliştiricisi olmasının yanı sıra PHP camiasının da aktif üyelerinden. PHP de, pek çok açıdan değerlendirildiğinde, günümüzde Web uygulamalarında kullanılan en popüler betik dili olarak kabul ediliyor.
Kendisini izlemekte olan kalabalığa oldukça iğneleyici bir dille :
Web oldukça büyük bir zarar gördü, dolayısıyla artık hepimiz evlerimize geri dönebiliriz.
Ama neyse ki, pek çok insan Web'in çöktüğünün farkında değil.
Lerdorf'un Web'i "çökmüş" olarak addetmesinin sebeplerinden birisi, Web'in doğası gereği taşıdığı güvenlik sorunları. Bu sebeplerden birisi ise geliştiricilerin hemen gözlerinin önünde yatıyor. Lerdorf :
Kullanıcı girdilerini filtrelemeniz gerektiğinin farkında bile değilsiniz.
diyor. Lerdorf, PHP geliştiricilerine, kablolar aracılığı ile kendilerine ulaşan hiçbir şeye güvenmemelerini tavsiye ediyor.
Lerdorf'un Apache HTTP Web sunucusu için "ahmaklık" tabirini kullanıyor. Benzer şekilde Microsoft Internet Explorer için;
Ama, karakter seti saptaması, keyfi başlık enjeksiyonu (arbitrary header injection), host header spoofing (host başlığı yanıltımı) ve request splitting (talep bölünmesi) gibi "ahmaklık" vakalarının yaşandığı Microsoft'un Internet Explorer'ı da var.
diyor ve Lerdorf bunu şöyle özetliyor :
IE pek çok açıdan tamamen çökmüş durumda.
Ama PHP sayesinde IE'nin çökme sebeplerinden bir kaçının üstesinden gelinebilir
Karakter seti saptaması söz konusu olduğunda Lerdorf geliştiricilere, PHP uygulamalarında default bir "charset" atadıklarından emin olmalarını salık veriyor.
PHP 5, geliştiricilerin Web'in "çökmesini" engellemelerine yardımcı olacak filtre talepleri için gerekli olan tüm işlevselliği sunuyor. Lerdorf
Her şeyi filtrelemeli ve ardından bu filtrelerde veri akışı için küçük delikler açmalısınız.
tavsiyesinde bulunuyor. Örneğin AJAX ve Web servislerince kurulan Zengin Web uygulamaları, modern Internet'in kilit noktalarını oluşturur. Artık, gelişimin performansı ve rahatlığı oldukça çökmüş durumda.
Lerdorf, Yahoo'nun konuşlandırdığına benzer zengin Web uygulamalarının, fevkalade yanıt sürelerine sahip olmaları ve yüksek sayıda kullanıcı ile başa çıkabilmeleri gerektiğini vurguluyor.
Lerdorf izleyicilere, Ubuntu Linux işletim sistemi çalıştıran temel bir 1.8 GHz AMD Athlon CPU sağlayıcısı üzerinde zengin uygulama servis performansını nasıl optimize edebileceklerini de gösterdi.
PHP yaratıcısı, referans olarak başlangıçta default ayarları ile sadece saniyede 17 talebe cevap verebilen uygulama çalıştırma sürecini izleyicilere gösterdi.
Sunduğu optimizasyon süreci, sonunda aynı donanım aynı uygulamaları çalıştırdığı halde, saniyede 1,100 talebe yanıt verebiliyordu ve 10 mili-saniyeden kısa bir yanıt süresi ile çalışmaktaydı.
Lerdorf'un önerdiği kod analizi temelli performans iyileştirmelerinden birisi, veri-tabanı için PostgreSQL yerine MySQL kullanmaktı. Lerdorf
Eğer probleminizi MySQL'in halledebileceği bir boyuta indirgerseniz, çözüm çok hızlı olacaktır. Performansta da epeyce bir artış sağlarsınız.
diyor. MySQL'in, PostgreSQL kadar başarılı olamadığı problemler içinse Lerdorf, PHP'nin kendi içerisinde bazı özelliklerini taklit edilebileceklerini ve bu sayede yine net bir performans artışı elde edilebileceklarini belirtiyor.
Ayrıştırma ve derleme hızları da, opcode bir önbellek kullanımı ile hatırı sayılır oranlarda yükseltilebiliyor. Pek çok betikleme dilinde olduğu gibi PHP'de de kodlar insanların anladığı bir dil yapısından, makine dili yapısına çevrilmektedir. PHP'de makine-dilindeki betikler, opcodes olarak adlandırılır.
Opcode bir önbellek, derlenen kodu paylaşılan hafızada depolar veya bellekler ve bu sayede benzer işlemler için kod derlenmesine sadece bir kez ihtiyaç duyulmuş olur. Halen geliştirilmekte olan PHP 6, default olarak kurulu bir opcode önbelleğe sahip olacak.
Günümüz PHP 5 kullanıcıları için, aralarında Lerdorf'un da önerdiği Alternative PHP Cache'nin (Alternatif PHP Önbellek-APC) de bulunduğu çeşitli opcode önbellek uygulamaları mevcut. Lerdorf
Yahoo'daki her sunucuda [APC] mevcuttur ve APC günlük olarak milyarlarca talebe cevap veriyor.
diyor. PHP 5.2 ayrıca, Lerdorf'un kullanımının çok zor olduğunu belirttiği ve "çok karmaşık" olarak nitelediği SOAP'ı kullananlar dahil tüm geliştiricilerin Web servislerini geliştirmelerini ve konuşlandırmalarını kolaylaştırıyor.
"Basit" XML veri kullanımlarına olanak tanıyan bir PHP uzantısı olan SimpleXML ile, Web servislerinin karmaşıklığının büyük bir kısmı soyutlanabilir.
Lerdorf bir örnek olarak kendisinin yazdığı ve SimpleXML aracılığı ile veri çekebilen bir on-line RSS ayrıştırıcısını, sunumu esnasında seyircilere gösterdi.
Lerdorf sunumunu, PHP'nin SOAP aracılığı ile bile, bir Web servisi kadar kolay bir biçimde nasıl kullanılabileceğini göstererek sürdürdü.
------------------------
yazının önemli olduğunu düşünerek tamamını ekledim
turk.internet.com dan alınmıştır. Metnin orjinali http://www.internetnews.com/dev-news/article.php/3631831