İçeriğe atla

Web şablon sistemi

Sunucu tarafı web şablonlama sistemi için temel işlem: Web belgelerini toplu olarak üretmek için içerik (veritabanından) ve "sunum özellikleri" (web şablonu ‘nda) (şablon motoru] aracılığıyla birleştirilir.

Web yayıncılığı'ndaki web şablon sistemi, web tasarımcılarının ve geliştiricilerin, bir aramanın sonuçları gibi özel web sayfa'larını otomatik oluşturmak için web şablonları ile çalışmasına olanak tanır. Bu, dinamik öğeleri web isteği parametrelerine dayalı olarak tanımlarken statik web sayfası öğelerini yeniden kullanır. Web şablonları statik içeriği destekleyerek temel yapı ve görünüm sağlar. Geliştiriciler içerik yönetim sistemlerinden, Web uygulama iskeletlerinden ve HTML düzenleyicilerinden şablonları kullanabilir.

Genel Bakış

Bir web şablonu sistemi aşağıdakilerden oluşur:

  • Şablon motoru: sistemin birincil işleme öğesi;[1]
  • İçerik kaynağı: ilişkisel veritabanı, XML dosyaları, LDAP dizini ve diğer türden yerel veya ağ bağlantılı veriler gibi çeşitli giriş veri akışı türlerinden herhangi biri;
  • Şablon kaynağı: web şablonu ‘nun şablon dili'ne göre belirtilir;

Şablon ve içerik kaynakları, web belgelerini toplu üretmek için şablon motoru tarafından işlenir ve birleştirilir. Bu makalenin amaçları doğrultusunda web belgeleri, web üzerinden HTTP, HTTPS veya başka bir İnternet protokolü aracılığıyla iletilmek üzere çeşitli çıktı biçimlerinden herhangi birini içerir.

Örnek

Genellikle ilişkisel bir veritabanında tutulan modelle, MVC mimarisinin geri kalan bileşenleri kontrol ve görünümdür. En basit sistemlerde bu ikisi birbirinden ayrılmaz. Bununla birlikte, ilgilerin ayrılması ilkesini benimsemek ilişkileri tamamen ayrıştırabilir.

Örneğin görünüm şablonu şöyle görünebilir:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head><title>Sites</title></head>
   <body><h1 data-xp="title"><!-- placeholder --></h1></body>
</html>

Sonra kontrol şablonu görünümü yükler ve ardından bir veritabanından bileşenleri eklemek için adresini XPath kullanır, örneğin:

<?php
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$doc->Load('view.html');
$titlenode = $doc->createTextNode("Like this");
$xpath = new DOMXPath($doc);
$xpath->registerNamespace("h", "http://www.w3.org/1999/xhtml"); 
$query = "//h:*[@data-xp='title']/comment()";
$entries = $xpath->query($query);
foreach ($entries as $entry) {
    $entry->parentNode->replaceChild($titlenode, $entry);
}
echo $doc->saveXML();
?>

Şablon sistemleri türleri

Bir web tarayıcısı ve web sunucusu bir istemci-sunucu mimarisidir. Siteler genellikle performansı artırmak için bir web önbelleği de kullanır. Beş şablonlama sistemi türü, yer tutucuları gerçek içerikle değiştirdikleri ve sayfaları bir araya getirdikleri zamana göre sınıflandırılır.

  • Sunucu tarafı - çalışma zamanı değişikliği web sunucusunda gerçekleşir
  • İstemci tarafı - çalışma zamanı değişimi web tarayıcısında gerçekleşir
  • Kenar tarafı - çalışma zamanı değişimi, web sunucusu ile tarayıcı arasındaki bir proxy'de gerçekleşir
  • Dış sunucu - statik web sayfaları çevrimdışı üretilir ve web sunucusuna yüklenir; çalışma zamanı ikamesi yoktur
  • Dağıtılmış - çalışma zamanı değişimi birden çok sunucuda gerçekleşir

Şablon dilleri şunlar olabilir:

  • Gömülü veya olay güdümlü.
  • Basit, yinelenebilir, programlanabilir veya karmaşık.
  • Bir konsorsiyum tarafından tanımlanmış, özel olarak tanımlanmış veya fiili olarak açık bir uygulama tarafından tanımlanmıştır. Sahiplik, bir spesifikasyonun kararlılığını ve güvenilirliğini etkiler. Bununla birlikte, çoğu yargı alanında, dil belirtimi telif hakkıyla korunamaz, bu nedenle kontrol nadiren mutlaktır.

Şablon motoru kaynak kodu tescilli veya açık kaynak olabilir.

Birçok şablon sistemi, daha büyük bir programlama platformunun veya çerçevesinin bileşenidir. Bunlara "platformun şablon sistemi" denir. Bazı şablon sistemlerinin, farklı bir şablon dili veya motoru değiştirme seçeneği vardır.

Programlama dilleri, örneğin Perl, Ruby, C ve Java yerel olarak veya eklenti kitaplıkları ve modülleri aracılığıyla şablon işlemeyi destekler. JavaServer Sayfaları (JSP), PHP ve Aktif Sunucu Sayfaları (VBScript, JScript veya diğer dillerle ASP) web şablonu motorlarına örnektir. Bu teknolojiler genelde sunucu tarafı şablon oluşturma sistemlerinde kullanılır ancak bir "uç tarafı" proxy'sinde veya statik sayfa oluşturmada kullanılmak üzere uyarlanabilir.

Statik site oluşturucuları

Statik site oluşturucular, bir statik web sayfası yapmak için markdown ve asciidoc gibi düz metin giriş dosyalarını kullanan motorlardır. Buna örnek olarak Jekyll (Liquid, Ruby), Hugo (Go) şablonları) ve Pelican (Jinja2, Python) dahildir.

Statik HTML Düzenleyicileri

Dış sunucu şablonu sistem mimarisi.

HTML düzenleyiciler yalnızca statik web sayfası yapmak için genellikle web şablon sistemlerini kullanır. Bunlar, hızlı dağıtım için "çerez kesici" web sitesilerin toplu üretimi için kullanılan hazır bir web tasarımı olarak görülebilir. Ayrıca genellikle Basamaklı Stil Sayfaları (CSS) stilleri yerine temalar içerirler. Genel olarak, şablon dili yalnızca düzenleyicinin yazılımıyla kullanılır.[2]

FrontPage ve Dreamweaver bir zamanlar şablon alt sistemlerine sahip en popüler editörlerdi. Flash web şablonu, görsel olarak etkileşimli siteler oluşturmak için Macromedia Flash kullanır.

Pek çok "sunucu tarafı şablon sistemi", yayınlanan sayfaların statik olduğu sunucuda çıktı sayfaları yayınlama seçeneğine sahiptir. Bu, Vignette gibi içerik yönetim sistem'lerinde yaygındır ancak sunucu dışı üretim olarak kabul edilmez. Çoğu durumda, bu "yayınlama seçeneği" "şablon sistemi" ile karışmaz ve harici yazılım tarafından Wget olarak yapılabilir.

Sunucu taraflı sistemler

Sunucu tarafı şablon sistemi

İnsanlar, bu görev için uyarlanmış önceden var olan yazılımlara sahip şablonlardan oluşturulan [sunucu tarafı dinamik sayfaları kullanmaya başladı. Bu, web kullanımı için uyarlanmış ve CGI üzerinde çalışan ilk yazılım önişlemcileri ve makro dilleri idi. Daha sonra, basit ama ilgili teknoloji, SSI (en:Server Side Includes) ile başlayan, genişletme modüllerinde yapılan doğrudan yürütmeydi.

Birçok şablon sistemi tipik olarak sunucu tarafı şablon sistemleri olarak kullanılır:

Sistem etiketi/adı Platform/çerçeve Notlar
Blade PHPKamu. Laravel'in parçasıdır
CheetahTemplate PythonKamu. Gömülü karmaşık dil.
DjangoPython"Django şablon dili" ‘ni kullanır.
FreeMarker JavaKamu.
Facelets Jakarta EEKamu. Jakarta Server Faces’ın parçasıdır
Genshi PythonKamu
Haml Ruby veya diğeri Kamu.
Hamlets Java Kamu.
Jinja2PythonKamu. Gömülü karmaşık dil.
Kid Python
Lasso LassoSoft, LLC 4 Mart 2023 tarihinde Wayback Machine sitesinde arşivlendi. Tescilli. Yorumlayıcılı Programlama dili ve Sunucu
Mustache ActionScript, C++, Clojure, CoffeeScript, ColdFusion, D, Erlang, Fantom programlama dili, Go, Java, sunucu-tarafı JavaScript, Lua, .NET, Objective-C, ooc( programlama dili),[3] Perl, PHP, Python, Ruby, Scala, TclKamu.
Temel Server Side Includes (SSI) Temel direktifler "standart" belirler. Gömülü basit dil, exec yönergesini hariç tutarsanız.
SmartyPHPKamu. Gömülü karmaşık dil.
Template Toolkit PerlKamu. Gömülü karmaşık dil.
Template Attribute Dili (TAL) Zope, Python, Java, Perl, PHP, XSLTKamu; diğer adıyla Zope Sayfa Şablonları (ZPT); ayrıca bkz. TAL Expression Syntax (TALES), Macro Expansion TAL (METAL)
Tiles JavaKamu. Çeşitli çerçevelerden (servlet, portlets, struts, spring) birden çok şablon dilini (JSP, Velocity, Freemarker, Mustache) destekler.
Thymeleaf JavaKamu.
Topsite PythonKamu. "2008-02-20 itibarıyla, bu proje artık aktif geliştirme aşamasında değildir."[4]
Twig PHP
PHPlibPHPlibKamu. Gömülü yinelenebilir dil.
WebMacro JavaKamu. Gömülü yinelenebilir dil.
WebObjects JavaMotor olarak WebObjects Builder kullanır.
Velocity JavaKamu. VTL kullan- Velocity Template Language 4 Mart 2023 tarihinde Wayback Machine sitesinde arşivlendi..
Vinyet Tescilli. Ticari çözüm. Gömülü karmaşık dil.
XSLT (standart dil) XSLT ayrıştırıcısı olan herhangi biri Standart. Olay odaklı programlanabilir dil.
XQuery (standard dil) XQuery ayrıştırıcısı olan herhangi biri Standard. Gömülü programlanabilir dil.

Teknik olarak, birçok "sunucu tarafı dahil komut dosyası dillerinde" kullanılan HTML (veya XML, vb.) içine programlama dilleri gömme yöntemi de şablonlardır. Hepsi Gömülü programlanabilir dil’lerdir.

Sistem etiketi/adı Notlar
Aktif Sunucu Sayfaları (ASP) Tescilli (Microsoft platform). Ayrıca bkz.: VBScript, Javascript, PerlScript, vb. ASP için uzantılar.
eRuby Kamu (Ruby).
ColdFusion Markup dili (CFM) Kamu (Lucee, Railo, OpenBD). Tescilli (Adobe ColdFusion).
Jakarta Server Pages (JSP) Kamu, Jakarta EE.
Active PerlKamu.
PHPKamu.
OpenACS Kamu (Tcl).

Sunucu tarafı şablon motorları olarak kullanılan önişlemciler de vardır. Örnekler:

Önişlemci Notlar
C önişlemcisiKamu. Gömülü yinelenebilir dil.
M4 Kamu. Gömülü programlanabilir dil.

Uç-taraf sistemleri

Edge-Side şablonu ve dahil etme sistemleri. "Uç taraf", istemci (tarayıcı) ile kaynak sunucu arasındaki boşlukta bulunan web sunucularını ifade eder. Genellikle "ters proxy" sunucuları olarak adlandırılırlar. Bu sunucular genellikle, resimler ve sayfa parçaları gibi içeriği önbelleğe alarak ve bunu tarayıcıya verimli bir şekilde ileterek kaynak sunuculardaki yükü ve trafiği azaltmakla görevlidir.

Temel Uç Tarafı İçeriği (ESI), SSI benzeri bir dildir. İçerik dağıtım ağları için ESI uygulanmıştır. ESI şablon dili, JavaScript ve Ajax kullanan web tarayıcılarında veya bir tarayıcı "eklentisi" aracılığıyla da uygulanabilir.

İstemci tarafı sistemler

İstemci tarafı ve dağıtılmış (merkezi olmayan) şablon sistemi.

Pek çok web tarayıcısı, verileri XHTML belgesine dönüştüren ve böylece tarayıcının kendisinde şablon işlevi sağlayan bir XSLT stil sayfasını XML verilerine uygulayabilir.
Diğer sistemler, JavaScript veya başka bir istemci tarafı komut dosyası oluşturma dili kullanarak tarayıcıda şablon işlevselliği uygular, örneğin:

Dağıtık sistemler

En basit biçim kapsamalarıdır (İngilizce: en:Transclusion) (HTML çerçeveleri). Diğer durumlarda dinamik web sayfaları gereklidir.

Örnekler:

  • Ajax
  • Zengin İnternet uygulaması

Ayrıca bakınız

Kavramlar:       Standartlar:
  • UIML (Kullanıcı Arayüzü İşaretleme Dili)
  • XSLT (Genişletilebilir Stil Sayfası Dil Dönüşümleri)
      Yazılım:

Kaynakça

  1. ^ "Template engine". phpwact.org wiki. 4 Aralık 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Ocak 2013. 
  2. ^ MacDonald, Matthew (2015). Creating a Website: The Missing Manual. Chapter 8 > Putting the Same Content on Multiple Pages > Web Templates > Note box: O'Reilly Media, Inc. ISBN 9781491936177. Erişim tarihi: 19 Ocak 2016. 
  3. ^ "{{mustache}}". 16 Ekim 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Ekim 2013. 
  4. ^ jodyburns. "Topsite Templating System". 20 Ekim 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Ekim 2013. 

9. Free ecommerce website themes 4 Mart 2023 tarihinde Wayback Machine sitesinde arşivlendi. MG Technologies Blogs and Information Portal of Website Themes.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">HTTP</span> iletişim protokolü

HTTP bir kaynaktan dağıtılan ve ortak kullanıma açık olan hiperortam bilgi sistemleri için uygulama seviyesinde bir iletişim protokolüdür. HTTP, World Wide Web için veri iletişiminin temelidir; burada köprü metni belgeleri, örneğin bir fare tıklamasıyla veya bir web tarayıcısında ekrana dokunarak kullanıcının kolayca erişebileceği diğer kaynaklara köprüler içerir.

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">Web sayfası</span> World Wide Web ve web tarayıcıları aracılığıyla doğrudan görüntülenebilen tek belge

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.

ASP.NET, Microsoft tarafından geliştirilmiş olan bir açık kaynak Web uygulama gelişimi teknolojisidir. Dinamik Web sayfaları, Web uygulamaları ve XML tabanlı Web hizmetleri geliştirilmesine olanak sağlar. Aynı işletme tarafından geliştirilen .NET çatısı'nın yazılım iskeleti parçası ve artık işletmece desteklenmeyen ASP teknolojisinin devamını teşkil etmiştir.

<span class="mw-page-title-main">Web 2.0</span>

Web 2.0, O'Reilly Media tarafından 2004'te kullanılmaya başlayan bir sözcüktür ve ikinci nesil internet hizmetlerini - toplumsal iletişim sitelerini, vikileri, iletişim araçlarını, folksonomileri- yani internet kullanıcılarının ortaklaşa ve paylaşarak yarattığı sistemi tanımlar. Kelimenin tam anlamı tartışmaya açıktır, Tim Berners-Lee gibi teknoloji uzmanları da kelimenin manasını sorgulamıştır.

<span class="mw-page-title-main">İnternet sitesi</span> tek bir web alanından sunulan ilgili web sayfaları kümesi

Web sitesi, Ortak bir alan adı ile tanımlanan ve en az bir web sunucusunda yayınlanan web sayfaları ve ilgili içeriklerden oluşan bir koleksiyondur. Web üzerindeki sayfalar; metin, görsel ve animasyon şeklinde ziyaretçisine bilgi aktaran veya hizmet sunan sayfaların tümünü kapsayan bir doküman topluluğudur. Ziyaretçiler bir web sitesine, HTTP veya HTTPS protokollerinde aşağıdaki bileşenlerden oluşan benzersiz bir adresi kullanarak erişirler:

<span class="mw-page-title-main">Vekil sunucu</span>

Vekil sunucu veya yetkili sunucu, İnternet'e erişim sırasında kullanılan bir ara sunucudur. Bu durumda, örneğin bir ağ sayfasına erişim sırasında doğrudan bağlantı yerine:

<span class="mw-page-title-main">İstemci-sunucu</span>

İstemci-sunucu, istemciyi sunucudan ayıran bir ağ mimarisidir. Her bir istemci yazılımı, sunucuya ya da uygulama sunucusuna isteklerini (request) gönderir.

Web grafik tasarımı, grafik tasarım alanı ile yakın ilişkili bir konu olmakla birlikte kendi içinde ayrı bir dal olarak da geniş bir alanı kapsayan bir kavramdır.

AJAX, İnternet sayfalarında JavaScript ve XMLHttpRequest kullanımı ile etkileşimli uygulamalar yaratan tekniğin adıdır.

<span class="mw-page-title-main">XHTML</span>

XHTML, açılımıyla Extensible HyperText Markup Language Türkçesi Genişletilebilir Büyütülmüş Metin İşaretleme Dili istemci taraflı(client side) bir metin işaretleme dilidir. XHTML 26 Haziran 2000'den beri bir web standartıdır. Kodlama olarak oldukça büyük farklar yaratan bu dil için:'XML sözdiziminin HTML içinde kullanılması.' diyebiliriz. HTML dilinin farklı tarayıcılarda farklı yorumlanması ve sözdiziminde fazla düzensizlik ve hata olduğu için XHTML W3C(World Wide Web Consortium - WWW) tarafından önerilmiştir. XHTML'nin diğer bir özelliği de kodlama yapanları CSS teknolojisini kullanmaya özendirmesidir.

<span class="mw-page-title-main">World Wide Web</span> internet kullanarak ulaşılan, birbirine bağlı belgelerden oluşan küresel sistem

World Wide Web, Dünya Çapında Ağ (kısaca WWW veya Web), İnternet üzerinde yayınlanan birbirleriyle bağlantılı hiper-metin dokümanlarından oluşan bir bilgi sistemidir. Bu dokümanların her birine Web sayfası adı verilir ve Web sayfalarına İnternet kullanıcısının bilgisayarında çalışan Web tarayıcısı adı verilen bilgisayar programları aracılığıyla erişilir. Web sayfalarında metin, imaj, video ve diğer multimedya ögeleri bulunabilir ve diğer bağlantı ya da link adı verilen hiper-bağlantılar ile başka Web sayfalarına geçiş yapılabilir.

<span class="mw-page-title-main">Java Servlet</span>

Java servlet, Java EE'de Java Servlet API'siyle uyumlu bir Java (programlama) sınıfı olup HTTP istemlerine cevap vermek için kullanılır. Belirli bir istemci-sunucu protokolüne bağlı olmamasına rağmen genelde bu protokolle kullanılır. Servlet kelimesi genelde HTTP servlet yerine bu yüzden kullanılmaktadır. Dolayısıyla bir yazılım uzmanı, Java platformu sayesinde servleti bir Web sunucusuna dinamik içerik eklemek için kullanabilir. Üretilen kod genelde HTML olsa da bazen XML de olabilir. Servletler, CGI ya da ASP.NET gibi Java-dışı Web içerik teknolojilerinin Java'daki karşıt üründür. Servletlerle HTTP çerezleri veya URL yeniden yazımı kullanılarak oturum değişkenlerinin sistem durumunu birçok sunucu hareketleri boyunca koruması sağlanmaktadır.

<span class="mw-page-title-main">Mobil internet</span>

Mobil internet mobil haldeki taşınabilir elektronik cihazlar ve sensörler vasıtasıyla veri oluşturabilen tüm alet ve cihazlar arasındaki iletişime verilen genel addır.

Web tarayıcı motoru, bir web sayfasının yapısını belirleyen HTML, XML ve görsel dosyalarıyla, o sayfaya biçem kazandıran CSS, XSL gibi dillerde yazılmış betikleri bir arada derleyen programdır. Arayüz motoru olarak da bilinir.

REST, Web protokolleri ve teknolojilerini kullanan bir dağıtık sistemdir. REST prensiplerini sağlayan sistemler, RESTful olarak sıfatlandırılır. Temsilî Durum Aktarımı ismindeki temsilî, verinin temsilini kastetmekte olup onunla ilgili durumun aktarılması olarak düşünülebilir.

Siteler arası betik çalıştırma, genellikle web uygulamalarında görülen, genellikle HTML enjeksiyonu zafiyetiyle birlikte ortaya çıkan veya Java Script kullanan bazı aplikasyonlarda bulunan bir güvenlik açıklığıdır. XSS, diğer kullanıcılar tarafından görüntülenen web sayfalarına istemci taraflı Java Script kodunun enjekte edilmesine imkân verir. Siteler arası betik çalıştırma açıklığı, saldırganlar tarafından aynı kök politikası gibi bazı erişim kontrollerini atlatmak ve hedef adresin oturum katmanını ele geçirmek için kullanılabilmektedir. Web sayfaları üzerinde gerçekleştirilen siteler arası betik çalıştırma saldırıları, 2007 itibarıyla Symantec'in raporladığı tüm güvenlik açıklıklarının yaklaşık olarak %84'ünü oluşturmaktadır. Zafiyet içeren sitenin işlediği verinin hassasiyetine ve site sahibi tarafından uygulanan güvenlik tedbirlerine bağlı olarak, etkisi ufak bir aksamadan önemli bir güvenlik riskine kadar değişebilmektedir.

Bir web geliştiricisi, istemci-sunucu modeli kullanarak World Wide Web uygulamalarının geliştirilmesinde uzmanlaşmış veya özel olarak ilgilenen bir programcıdır. Uygulamalar genellikle istemcide, PHP, ASP'de HTML, CSS ve JavaScript kullanır. NET (C#), Python, Node.js, sunucuda Go veya Java ve istemci ile sunucu arasındaki iletişim için http bağlantılarını kullanmaktadır. Bir web içerik yönetim sistemi genellikle web uygulamalarını geliştirmek ve sürdürmek için kullanılır.

HTTP/2 Server Push, HTTP/2 uyumlu bir sunucunun kaynakları, istemci talep etmeden önce HTTP/2 uyumlu bir istemciye göndermesine izin verir. Çoğunlukla, kaynakları önceden yüklemede yardımcı olabilecek bir performans tekniğidir.

Web'de kullanıcı aracısı, kullanıcı adına hareket eden ve "Web içeriğini alan, işleyen ve son kullanıcı etkileşimini kolaylaştıran" herhangi bir yazılımdır. Bu nedenle kullanıcı aracısı özel bir yazılım aracısı türüdür.