İNTERNET TABANLI PROGRAMLAMA - Ünite 1: İnternet Tabanlı Programlamanın Temelleri Özeti :
PAYLAŞ:Ünite 1: İnternet Tabanlı Programlamanın Temelleri
Giriş
Programlamanın 1801 yılında Joseph Marie Jacquard’ın dokuma tezgâhındaki işlemleri otomatikleştirmek adına ürettiği delikli kartlar ile başladığı söylenebilir. Programlama, bilgisayarların gelişmesiyle ilerleme kaydetmiştir. İlk bilgisayar ENIAC, altı bayan operatör tarafından programlanıyordu. Programlama yöntemi ise elle takılıp çıkarılan fişler, kablolar ve kumanda edilen düğmelerdi. Bilgisayar dili olarak bilinen ve ikili kodlamaya (1 ve 0) sahip programlamanın yapısı bilgisayarın işlevlerinin gelişmesi ile değişmiş ve dönüşüm yaşamıştır. İlk programlama dili olarak bilinen Assembly dili 1 veya 0 ile tanımlanan kodlama yapısından kelimelerle ifade edilen yapılara dönüşmüştür. Programcının Assembly dilinde yazdığı “Load, Add, Store” gibi komutları bilgisayarlar arka planda Assembler adı verilen programlarla yine 1’lere ve 0’lara dönüştürmeye devam etmektedir. Fakat programcı artık bu kısımla ilgilenmemektedir. Assembly dilinden sonra kodlamayı veya programlamayı kolaylaştıran BASIC, FORTRAN, COBOL, Pascal, C/C++ ve Java gibi programlama dilleri geliştirilmiştir. Programlama dillerinde bu şekilde değişim ve dönüşüm yaşanırken bilgisayarların kendi aralarında haberleşebilmelerini sağlamak amacıyla internet teknolojileri de gelişme kaydetmiştir.
İnternet Tabanlı Programlama Nedir?
Program, belirli bir işin belirli bir düzen içerisinde yapılmasıdır. Bu düzen genellikle algoritmik yapıyla sağlanmaktadır. Elektronik devrelere sahip cihazların belirli görevleri yapabilmesi için o görevlerin nasıl yapılacağını bilmeleri gerekir. Burada karşımıza programlama kavramı çıkmaktadır. Programlama, üzerinde elektronik devreleri bulunan cihazların belirli görevleri yerine getirmesi için yazılan, algoritmik yapıda olan ve bir programlama dili ile yazılmış olan komutlar dizisidir.
Programlama yaparak cihazlara ne yapması gerektiği bilgisi verilir. Cihazlar da o görevleri programlama içerisinde bulunan komutlara göre gerçekleştirir. Diğer bir ifadeyle elektronik cihazların ne yapması gerektiği programlama ile belirlenmektedir. Programlamanın tarihçesine bakıldığında dokuma tezgahlarında kullanılan delikli kartlar karşımıza çıkmaktadır.
Delikli kartlar ile dokumada çeşitli şekiller kolaylıkla yapılabilmektedir. Farklı tasarımları içeren delikli kartlar dokuma tezgâhlarına takılarak dokumalar gerçekleştirilmiştir. 19. yüzyılda dokuma tezgahlarını denetlemekte kullanılan delikli kartlar 20. yüzyılda önce hesap makinalarında ve sonra bilgisayarlarda kullanılmaya başlanmıştır. Zamanla bilgisayar teknolojileri gelişme kaydetmiş ve programlama yapısı elektronik ortama geçerek farklı bir hal almıştır. Bilgisayarların aralarında iletişim kurmaları için geliştirilen internet teknolojilerinin ortaya çıkmasıyla birlikte internet tabanlı programlama dilleri de gelişim göstermiştir.
Web tarayıcısı ile açılan Web sitelerinin her sayfasının arka planında çeşitli kodlar bulunmaktadır. Bu kodlar, bilgisayarda bazı işlemleri yapmak amacıyla geliştirilen programlama dilleri gibi yapılara sahiptir. Web sayfalarının gördüğümüz ekran görüntüsü arka planda işleyen, görmediğimiz bir kodlama altyapısına sahiptir. Bu arka planda işleyen yapının Web tarayıcılarında görüntülenmesini sağlayacak şekilde düzenlenmesi için kodlamalarının yapılması internet tabanlı programlama dilleri ile gerçekleştirilmektedir. İnternet tabanlı programlama dili, web sitelerinin geliştirilmesi ve Web tarayıcılarda sorunsuz bir şekilde görüntülenebilmesi için geliştirilen programlama yapısıdır.
İnternet Tabanlı Programlamanın Tarihsel ve Yapısal Gelişimi
İnternetin tarihsel gelişim sürecine bakıldığında, bilgisayarların gelişmesinin ardından bilgisayarların kendi aralarında haberleşmelerini sağlamak amacıyla bilgisayar ağlarının kurulması gereksinimine dayandığı görülmektedir. Amerika Birleşik Devletleri’nde (ABD) 1960’ların başında Savunma Bakanlığı tarafından çalışmalara başlanan ve ARPANET olarak ortaya çıkan yapı İnternet Protokolü (IP) kullanan ilk yapıdır. Bilgisayarlar arasında kurulan bu yapıya 1972 yılında eposta hizmeti eklenmiş ve takip eden 1973 yılında FTP (Dosya Transfer Protokolü) hizmeti eklenmiştir. Savunma alanında kullanılmak üzere geliştirilen internet 1990’lardan itibaren yaygınlaşmasını devam ettirmiştir. World Wide Web (WWW) ve Hyper Text Markup Language (HTML) hizmetlerinin internet hizmeti olarak kullanılmaya başlamasıyla internetin yaygınlaşması hızlanmış ve 1994-1995 yıllarında 60 milyon kullanıcıya ulaşmıştır.
1991 yılında geliştirilen HTML ile sayfalarda işaretlemeler yapılmakta ve geliştirilen sayfalar statik çalışmaktadır. 2014 yılında yayınlanan ve geliştirilme süreci devam eden HTML5 ile media etiketleri, canvas etiketleri, form etiketleri ve normal kullanım için yeni etiketler kullanılmaya başlanmıştır. Bu etiketlerin yanı sıra form elemanı olan input type için de çok sayıda yeni türler geliştirilmiştir. Bu yeni etiketler ile Flash programında yapılabilen animasyonlar, Web galerileri, hareketli Web sayfaları yapmak artık mümkündür. Apple firmasının Web tarayıcılarında Flash Player desteğini kaldırdığı düşünüldüğünde HTML5’in öneminin arttığını söylemek mümkündür. HTML5 ile hazırlanan Web sayfalarının görüntülenmesi için Flash ile hazırlanan sayfalarda olduğu gibi ek bir uygulamanın bilgisayarlara yüklenmesine gerek yoktur. HTML5 kodları Web tarayıcılarında kolaylıkla görüntülenebilmektedir.
HTML dilinden sonra 1995 yılında Rasmus Lerdorf tarafından Personal Home Page (PHP) dilinin geliştirildiği görülmektedir. Ücretsiz ve nesne yönelimli olarak geliştirilen PHP dili, çoğunlukla hareketli ve etkileşimli Web sayfaları oluşturmak için kullanılan, sunucu taraflı, çok geniş kullanımlı, genel amaçlı, HTML içerisine gömülebilen bir betik programlama dilidir. PHP dili açık kaynak kodlu bir yapıya sahip olduğu için Rasmus Lerdorf’tan sonra PHP dilinin geliştirilmesini PHP topluluğu gerçekleştirmektedir.
İnternet Tabanlı Programlama Temel Kavramları
İnternet veya internet tabanlı programlama denildiğinde Web tarayıcısı, Web sayfası, www, http, URL, hosting, domain, IP, statik, dinamik, Proxy, HTML, CSS, PHP, ASP, Java ve Veritabanı gibi kavramlar karşımıza çıkmaktadır. Bu kavramlara bu özet kapsamında kısaca değinilmiştir.
Web Tarayıcı
Geliştirilen Web sitelerinin sunuculara yüklenmesi sonucunda o Web sitelerini ziyaret etmek için bilgisayarlarda aracı programlar olması gerekmektedir. Bu aracı programlar Web tarayıcılarıdır. Standart Web tarayıcısı; metin veya çoklu ortam dosyalarını açabilir, kaydedebilir, HTML’den HTTP’ye bütün protokolleri ve standartları destekler, açılan sayfada aranan nesneyi bulabilir, sık kullanılanlar ve geçmiş listesi yapabilir, genel ağa dosya yükleme ve genel ağdan dosya indirme yapabilir, e-posta ve metin editörleriyle bütünleşebilir, linkleri (bağlantı) izleyebilir, dosya sistemlerini okuyabilir, bağlayabilir ve kaydedebilir, çoklu ortam dosyalarını oynatabilir veya kaydedebilir, sayfanın çıktısını alabilir ve çevrimdışı da çalışabilir. İnternet Explorer, Google Chrome, Mozilla Firefox, Apple Safari, Opera ve Yandex Browser en çok tercih edilen Web tarayıcılarıdır. Mobil cihazlar için Opera Mini, Opera Mobile, Apple Safari, Google Chrome ve Microsoft Edge Web tarayıcıları kullanılmaktadır.
WWW
WWW, bilgisayarların birbiriyle iletişim kurabildiği, görüntü, ses ve veri paylaşımının yapılabildiği tüm dünyaya yayılmış büyük bir ağdır. Web sayfası ise WWW üzerinde görüntülenen Web sitelerinin her bir dosyasını temsil etmektedir. URL (Uniform Resource Locator), internet üzerinde Web sitelerinin sahip oldukları adreslerin genel adıdır. “www.anadolu.edu.tr” Anadolu Üniversitesi’nin Web sitesinin URL’sidir.
Hosting ve Domain
Sunucularda kullanıcılar için ayrılan bölümlere hosting denilmektedir. Web sitelerinin içerikleri hostingler vasıtası ile sunucularda o Web siteleri için ayrılan bölümlerde saklanır. Web sitesi için ayrılan hosting alanlarına FileZilla, CuteFTP, WinSCP, Easy FTP ve SmartFTP gibi yardımcı programlarla erişilebilir. Her Web sitesinin belli bir IP’si vardır. IP’ler sayılardan oluşan bir yapıda olduğu için her sitenin IP’sini akılda tutmak zor olacaktır. Bu nedenle Web sitelerinin adreslerinin kolay hatırlanabilmesi için alan adı (domain) geliştirilmiştir. Web sitelerinin kendine özgü alan adları vardır. Domain belirlerken uzantıları da önemlidir.
Statik ve Dinamik Web Sitesi
Statik Web siteleri, daha çok uzman kişiler tarafından hazırlanan ve düzenlemelerinin de yine uzman kişiler tarafından yapılabildiği Web siteleridir. Statik Web sayfaları, daha çok bilgi verme amaçlı hazırlanan ve sık sık düzenleme gerektirmeyen sitelerdir. Üzerinde değişiklik yapılan statik Web sayfalarının sunucuya tekrar yüklenmesi gerekmektedir. Web sitesini oluştururken HTML, XHTML, DHTML ve CSS dilleri kullanılabilir. Dinamik Web siteleri ise verilerinin veri tabanlarında tutulduğu ve istenildiğinde bu bilgilerin uzman olmayan kişiler tarafından da kolaylıkla değiştirilebildiği yapılardaki sitelerdir. Dinamik Web siteleri PHP veya ASP gibi internet tabanlı programlama dilleriyle geliştirilmektedir. Veritabanı üzerinde yapılan değişikliklerle sayfalarda otomatik değişiklik yapıldığından dolayı yapılan değişiklik durumunda Web sayfalarının sunucuda manuel olarak güncellenmesine gerek yoktur. Dinamik Web sitesi oluştururken ASP.Net ASP, PHP, JavaScript ve CFM gibi diller kullanılabilir.
HTML ve HTML Etiketleri
HTML: HyperText Markup Language yani HareketliMetin İşaretleme Dili. Web sayfalarının programlama mantığına dayalı olmayan şekilde oluşturulmasını sağlayan metin işaretleme dilidir.
CSS (Cascading Style Sheets)
CSS bir programlama dili olmayıp HTML’e ek olarak metin ve şekilsel düzenlemelere olanak sağlayan bir Web teknolojisidir. Yerel CSS, genel CSS ve harici CSS olmak üzere üç türü bulunmaktadır. Yerel CSS, sayfada tanımlandığı yerde geçerliyken genel CSS sayfanın bütünü için geçerlidir. Harici CSS ise Web sayfalarının içerisinde bulunmayıp .css uzantılı harici dosyalar içerisinde kodların yazılarak oluşturulduğu ve Web sayfalarına bağlantılarının yapılması yoluyla çalıştırıldığı CSS türüdür. Yerel CSS kodları arasına yazılırken genel CSS kodları
arasına yazılır. Harici CSS ise arasına harici CSS’in bağlantısının verilmesi yoluyla kullanılabilir.Veri Tabanı
Veritabanı (Database), birbirleriyle ilişkili verilerin depolandığı alanlardır. Veri tabanları verilerin yönetilmesini, güncellenmesini ve taşınmasını kolaylaştırır. üzerinde yapılan değişiklikler ile Web sitesindeki bütün içerikler kolaylıkla değiştirilebilmektedir. SQL, Pl/SQL ve OQL gibi veritabanı dilleri bulunmaktadır. Bu dillerle oluşturulmuş MySQL, MsSQL, PostgreSQL, Oracle, Sybase, Berkeley, Firebird, Interbase, Informix ve MsAccess gibi veritabanı sistemleri mevcuttur.
Protokol: Kelime anlamı itibariyle iki taraf arasında yapılan sözleşme olan protokol internet tabanlı teknolojiler açısından düşünüldüğünde de benzer anlamdadır. Temel olarak istemci ve sunucu taraflı olarak iki tarafın sözleşmeye uygun davranması anlamına gelir.
Proxy
Vekil sunucu olarak bilinen Proxy, internete erişim sırasında kullanılan ara sunucudur. Bir Web tarayıcısında gerçekleştirilen Proxy ayarı değişikliği diğer Web tarayıcıda çalışmayacağı için her Web tarayıcısına ayrı ayrı Proxy ayarı yapılması gerekmektedir.
İnternet Tabanlı Programlama Dilleri
İnternet tabanlı programlama dilleri betik diller, istemci sunucu taraflı programlama ve nesne tabanlı programlama olarak üç kategoride ele alınmaktadır.
Betik dili
Web sayfalarında dinamik içerik oluşturmak ve kullanıcılarla iletişim kurmak amacıyla çalışan dildir.
HTML etiketleri arasında tanımlanarak kullanılabilmektedir. JavaScript, Lua, Perl, PHP ve Python programlama dilleri betik dil ailesindedir.
İstemci-Sunucu Taraflı Programlama
İnternete bağlı bir bilgisayardan Web tarayıcısında adres çubuğuna ziyaret edilecek Web sayfasının adresi veya IP adresi yazılarak sunucudan bilgi istenir. Sunucudan bilgi istenmesi işlemini istemci gerçekleştirir. İstemciye cevap veren ve istenilen içeriği istemciye ulaştıran yapı sunucu olarak tanımlanmaktadır.
Nesne Tabanlı Programlama
Nesne kelime anlamı itibariyle beş duyu organımızla algılayabildiğimiz her şeydir. Gerçek dünyada nesneler bu şekilde tanımlanırken bilgisayar ortamında da benzer şekilde gözle görebildiğimiz her şey nesnedir. Gerçek dünyada algıladığımız nesnelerin dijital ortamda da kullanılması kodlarla mümkündür. Bu bağlamda ilk kez 1960’lı yıllarda ortaya çıkan nesne tabanlı programlama (Object Oriented Programming), gerçek dünyadaki nesnelerin modellenmesi ve bu modele göre kodlanması yoluyla oluşturulan programlama türüdür. Beş duyu organımızla tanımlayamadığımız fakat dijital ortamda nesne olarak tanımlayabileceğimiz nesneler de mevcuttur. Örneğin hastane programı yaparken hastaların randevu alması da nesne olarak tanımlanabilir.
Dinamik Web
Dinamik Web siteleri, uzmanlık bilgisi gereksinimi olmadan Web sitelerinin içeriklerin güncellenebilmesine dayalı olan yapılardır. Dinamik Web sitelerinin güncellemelerinin kolay bir şekilde yapılabilmesi için kullanıcı panelleri geliştirilmektedir. Bu amaçla geliştirilen panellerde çeşitli mimariler kullanılmaktadır.