Web sayfası

Web sayfası, World Wide Web için hazırlanan ve web tarayıcısı kullanılarak görüntülenebilen dokümanlardır. Web sayfaları çoğunlukla HTML formatında kodlanır, CSS, betik, görsel ve diğer yardımcı kaynaklardan yararlanılarak son görünümüne sahip olur ve işlevsellik kazanır. Birden fazla web sayfasının bir araya gelmesi ile ortaya çıkan web sitesi ile karıştırılmamalıdır. Günlük konuşma dilinde internet sayfası terimi de çoğunlukla web sitesi anlamında kullanılmaktadır.Tipik bir web sayfası, diğer web sayfalarına hiper-bağlantıların bulunduğu bir hiper-metindir ancak farklı teknolojilerle de hazırlanmasında bir engel bulunmamaktadır. Örneğin günümüzde kullanımı azalmış olmakla beraber sadece Flash uygulamasından ibaret olan web sayfaları bulunmaktadır.Web sayfaları bir ağ üzerinde web sunucuları tarafından yayınlanır. Web sunucusu erişimi sadece özel bir ağa kısıtlayabilir (ör. şirket intraneti) veya Genel Ağ'da yayınlıyabilir.Teknik işleyiş olarak ele alındığında web tarayıcıları web sunucularına bağlantı kurarak bir istemde bulunur (web sayfasını sunucudan ister) ve sunucu ilgili dosyanın kaynak kodunu tarayıcıya iletir. Bu iletişim Hipermetin Aktarım Protokol'ü (HTTP) üzerinden yapılır. Gelen kaynak kodunu işlemek ve son kullanıcının göreceği son hale getirmek web istemcisinin görevidir.Web sayfaları web sunucusunun dosya sisteminde düz metin olarak saklanabilir (statik web sayfaları) veya web sunucusu her bir sayfa için istemi gerçekleştiren tarayıcıya özel bir sayfa oluşturabilir (dinamik web sayfaları). İstemci tarafı betikler (ör. JavaScript) ile web sayfasını kullanan kullanıcının etkileşimine anlık cevap verecek programlar yazılarak kullanılabilirlik (usability) arttırılabilir.Statik web sayfaları genellikle .htm veya .html, sunucu taraflı dinamik web sayfaları ise daha çok sunucu tarafında çalıştırılan kodlama dilini yansıtan .php veya .asp gibi uzantılara sahiptir. Günümüzde gelişen teknolojiler ve web uygulama iskeletleri sayesinde dinamik web sitelerinin birçoğunda uzantılar tercih edilmemektedir. Bunun popüler nedeni daha okunaklı bir URL elde etmek ve SEO avantajları kazanmaktır.Web sayfalarının son hallerinin oluşturulması için gerekli olan metin ve arka plan renklerine ait yönergeler, sayfada yer alacak olan görüntü, video ve diğer her tür medya ile ek bilgiler web sayfası kodları içerisinde yer alır. Sayfanın genel yapısı (İngilizce layout), kullanılan yazı türleri ve renkler CSS yönergeleri ile tanımlanır. CSS yönergeleri HTML kodları içerisinde verilebileceği gibi farklı dosyalarda da yer alabilir, bu durumda HTML kodları içerisinde ilgili dosyanın bağlantı adresine referans verilir.JavaScript gibi istemci tarafı kodlar, CSS yönergelerine benzer bir şekilde HTML içine gömülü ya da farklı bir dosyada barındırılabilir. İstemci tarafı betikler kullanıcının tarayıcısı üzerinde çalışır ve kullanıcının web sayfası ile etkileşimini sağlar. İstemci tarafı betiklerin kullanıcının bilgisayarına erişimi vardır ancak bu erişim oldukça kısıtlı olup kişinin kişisel bilgilerine erişim imkânı bulunmamaktadır.Resimler çoğunlukla sunucuda ayrı birer dosya olarak bulunurlar ve web sayfası içerisinden bu ayrı dosyaların bağlantı adreslerine referans verilir. Günümüz tarayıcıları genellikle sayfanın genel yapısı ve yerleştirmelerini yaparken resimlerin yerine boş bir alan koyar ve metinleri gösterdikten sonra yüklemesi uzun süren resimleri yerlerinde yüklemeye başlarlar.HTTP protokolünde tanımlandığı üzere, tarayıcı bağlandığı web sayfası ile web sayfasından referans verilen dış dosyaları (CSS, javascript ve resimler gibi) sadece bir kez indirir ve önbelleğe kaydeder, aynı sayfaya tekrar ulaşıldığında bu dosyayı tekrar indirmek yerine önbellekten kullanılır. Bu şekilde hem sayfaların görüntülenme hızı artar, hem de internet hat kullanımı azaltılmış olur. Hangi dosyaların önbelleğe alınıp alınmayacağı bilgisini veren web sunucusudur.Tarayıcılar Internet Explorer, Mozilla Firefox, Google Chrome veya Opera gibi grafiksel kullanıcı arabirimi olabiliceği gibi Lynx gibi metin tabanlı olabilir. Metin tabanlı tarayıcılar resim, video vb. grafiksel öğeleri göstermeyip sadece metinleri gösterirler.