Dosya Formatları
HTML Nedir? Tarihçesi, Ayrıştırma ve DOM Yapısı
HTML, web sayfalarının yapısını tarif eden işaretleme dilidir ve bugün hemen her web sitesinin temelindedir. Tarihçesini, tarayıcının onu nasıl işlediğini ve HTML'i belgeye çevirirken nelere dikkat edeceğinizi anlatıyoruz.
Yazar: Hemen Dönüştür Editör EkibiYayınlanma: 6 dk okuma

Şu anda okuduğunuz sayfa da dahil olmak üzere web'de gördüğünüz neredeyse her şey HTML ile yazılır. HTML (HyperText Markup Language, hiper metin işaretleme dili) bir programlama dili değil, bir belgenin yapısını tarif eden bir işaretleme dilidir: Bu bir başlık, bu bir paragraf, bu bir bağlantı, bu bir tablo. Ama HTML yalnızca web siteleri için değil; e-posta şablonlarında, yardım belgelerinde, dışa aktarılan raporlarda ve "web sayfası olarak kaydedilmiş" belgelerde de karşımıza çıkar. Bu yazıda HTML'in tarihçesini, bir tarayıcının HTML'i nasıl okuyup ekrana çizdiğini, sık karşılaşılan sorunları ve HTML dosyalarını Word ya da PDF'e çevirirken nelere dikkat etmeniz gerektiğini anlatıyoruz.
HTML nedir?
HTML, içeriği etiketlerle işaretleyen düz metin tabanlı bir dildir. Etiketler köşeli ayraçlar arasında yazılır ve çoğu açılış ile kapanış etiketiyle bir öğe oluşturur:
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="utf-8">
<title>Örnek sayfa</title>
</head>
<body>
<h1>Merhaba</h1>
<p>Bu bir <a href="https://example.com">bağlantı</a> içeren paragraftır.</p>
</body>
</html>
<head> bölümü sayfa hakkındaki bilgileri (karakter kodlaması, başlık, stil dosyaları) taşır; <body> ise görünen içeriği. Görünüm CSS ile, davranış JavaScript ile eklenir. Bu üçlü ayrım, HTML'in kendisinin "ne olduğunu", CSS'in "nasıl göründüğünü", JavaScript'in "ne yaptığını" anlattığı anlamına gelir.
Kısa tarihçe
HTML, Tim Berners-Lee'nin 1989'da CERN'de önerdiği World Wide Web projesinin parçası olarak doğdu. Berners-Lee'nin ilk tarayıcısı 1990'da NeXT bilgisayarında çalıştı. Dilin ilk sürümleri resmi bir standarttan çok, CERN'deki belgelerde listelenen etiketlerden oluşuyordu. Sonraki dönüm noktaları şöyle:
- Kasım 1995, HTML 2.0: Tim Berners-Lee ve Dan Connolly'nin yazdığı RFC 1866, HTML'i ilk kez resmi bir standart olarak tanımladı.
- Ocak 1997, HTML 3.2: W3C'nin sektörler arası bir şartname olarak resmen onayladığı sürüm.
- 24 Aralık 1999, HTML 4.01: Uzun yıllar web'in temel şartnamesi olarak kaldı; W3C bunu 27 Mart 2018'de resmen "yerini başkasına bırakmış" olarak işaretledi.
- 28 Ekim 2014, HTML5: W3C, HTML5'i Öneri (Recommendation) statüsüne yükseltti. Video, ses, semantik bölüm etiketleri ve kesin tanımlanmış bir ayrıştırma algoritması bu sürümle standartlaştı.
- 28 Mayıs 2019, tek standart: W3C ile tarayıcı üreticilerinin oluşturduğu WHATWG bir mutabakat imzaladı. Buna göre HTML ve DOM esas olarak WHATWG'de, sürüm numarası olmayan bir "Living Standard" (yaşayan standart) olarak geliştiriliyor.
Yani bugün "HTML5" demek pratikte "güncel HTML" demektir; resmi şartname sürekli güncellenen HTML Living Standard'dır.
Yaygınlığı konusunda bir veri: W3Techs'in 15 Ekim 2026 tarihli istatistiklerine göre işaretleme dili tespit edilebilen web sitelerinin %97,8'i HTML kullanıyor. Aynı kaynağa göre karakter kodlaması bilinen sitelerin %99,1'i UTF-8 kullanıyor.
Tarayıcı HTML'i nasıl işler?
HTML'i diğer belge biçimlerinden ayıran en önemli özellik, hatalı yazılmış belgelerin bile her tarayıcıda aynı şekilde yorumlanmasıdır. HTML Living Standard bunun için ayrıntılı bir ayrıştırma (parsing) modeli tanımlar:
- Kodlamayı belirleme: Tarayıcı gelen baytları önce karaktere çevirmek zorundadır. Sırasıyla BOM'a, sunucunun HTTP başlığında bildirdiği kodlamaya ve belgenin ilk 1024 baytındaki
<meta charset>bildirimine bakar; hiçbiri yoksa tahmin yürütür. - Belirteçlere ayırma (tokenization): Bir durum makinesi metni başlangıç etiketi, bitiş etiketi, yorum, DOCTYPE ve karakter gibi belirteçlere böler.
- Ağaç kurma (tree construction): Belirteçler, "body içinde", "tablo içinde" gibi ekleme kiplerine göre işlenir. Ayrıştırıcı açık öğelerin bir yığınını tutar ve yanlış iç içe geçmiş etiketleri tanımlı kurallara göre onarır.
- DOM: Sonuç, Document Object Model (DOM) adı verilen bir nesne ağacıdır. CSS bu ağaca uygulanır, JavaScript bu ağacı okuyup değiştirir.
Şartname bu konuda nettir: Ayrıştırma hatalarının nasıl ele alınacağı iyi tanımlanmıştır. Örneğin bir <div/> yazdığınızda HTML'de sondaki eğik çizgi yok sayılır ve sonraki öğeler bu div'in içine yerleşir. Kapatılmamış bir <p> ise bir sonraki blok öğesi geldiğinde otomatik olarak kapanır. Bu hoşgörü, web'in sayısız kusurlu sayfaya rağmen çalışmasını sağlar; ama HTML'i bir belge biçimine çeviren araçların da aynı kurallara uyması gerektiği anlamına gelir.
Nerelerde kullanılır?
- Web siteleri ve uygulamalar: Her web sayfasının iskeleti.
- E-posta: Biçimli e-postalar ve bültenler HTML ile yazılır.
- Dokümantasyon: Yardım sayfaları, yazılım belgeleri ve Markdown'dan üretilen siteler.
- E-kitap: EPUB biçimi, içeriği XHTML belgeleri olarak paketler.
- Raporlar ve dışa aktarımlar: Birçok yazılım raporlarını HTML olarak üretir; Word'ün "Web sayfası olarak kaydet" çıktısı da HTML'dir.
Güçlü ve zayıf yönleri
| Güçlü yönler | Zayıf yönler |
|---|---|
| Her cihazda bir tarayıcıyla açılır | Görünüm dış CSS, yazı tipi ve görsellere bağlı |
| Açık, ücretsiz ve sürekli güncellenen standart | Sayfa, kenar boşluğu gibi baskı kavramları zayıf |
| Ekran boyutuna uyum sağlayan akışkan yapı | Tek dosyada taşınması zor (görseller ayrı dosyalarda) |
| Erişilebilirlik ve arama motorları için anlamsal yapı | JavaScript içerdiğinde güvenlik açısından dikkat ister |
| Düz metin olduğu için sürüm kontrolüne uygun | Sayfanın son halini dondurmak için PDF kadar uygun değil |
Hangi programlar açar?
Chrome, Firefox, Safari ve Edge gibi tüm tarayıcılar HTML'i görüntüler. Kaynağını düzenlemek için Visual Studio Code gibi kod düzenleyiciler ya da herhangi bir metin düzenleyici yeterlidir. Microsoft Word ve LibreOffice Writer HTML dosyalarını açıp belge olarak düzenleyebilir; ancak karmaşık CSS düzenleri bu programlarda sadeleşir.
Sık karşılaşılan sorunlar ve çözümleri
Türkçe karakterler bozuk görünüyor
Sayfanın kodlaması bildirilmemiş ya da yanlış bildirilmiştir. <head> içine, belgenin başına yakın bir yere <meta charset="utf-8"> ekleyin ve dosyayı gerçekten UTF-8 olarak kaydedin. Sunucu farklı bir kodlama bildiriyorsa HTTP başlığını da düzeltin.
Kaydedilen sayfada görseller ve stiller yok
HTML dosyası görselleri ve CSS'i çoğu zaman ayrı dosyalardan ya da internetteki adreslerden çağırır. Yalnızca .html dosyasını taşıdığınızda bu bağlantılar kopar. Tarayıcının "Web sayfası, tamamı" kaydetme seçeneğini kullanın ya da görselleri belgeye gömün.
Sayfa yazdırınca bozuluyor
Ekran için tasarlanmış düzenler kağıda sığmayabilir. CSS'te @media print kuralları ve @page ile kağıt boyutu ve kenar boşlukları tanımlamak baskı çıktısını büyük ölçüde iyileştirir.
HTML dönüştürme ipuçları
Dönüştürücümüzde HTML dosyaları sunucumuza yüklenir ve 30 dakika içinde silinir. Dosya okunurken kodlama sırasıyla BOM'dan, <meta charset> bildiriminden ve içerikten tespit edilir; UTF-8 olmayan eski Türkçe sayfalar için Windows-1254 varsayılır. Belgenin <body> içeriği ve sayfadaki <style> bloğu korunur; <body> etiketi olmayan HTML parçaları da olduğu gibi işlenir.
- HTML'den PDF'e dönüştürme bir tarayıcı motoruyla yapılır: Baskı (print) CSS'i uygulanır, CSS'te
@pageile tanımlanmış sayfa boyutu varsa kullanılır, yoksa A4 seçilir ve arka plan renkleri basılır. Güvenlik için JavaScript çalıştırılmaz ve internetteki görseller, yazı tipleri ya da stil dosyaları indirilmez; yalnızca belgeye gömülü (data: URI) kaynaklar kullanılır. Görsellerin çıktıda görünmesini istiyorsanız onları HTML'e gömün. - HTML'den Word'e dönüştürmede başlıklar, listeler, tablolar, hizalama ve gömülü görseller LibreOffice ile DOCX'e aktarılır. Karmaşık CSS yerleşimleri (flex, grid) Word'de karşılığı olmadığı için sadeleşir.
- HTML'den Markdown'a dönüştürme, bir web sayfasını ya da yardım belgesini dokümantasyon deposuna taşımak için idealdir: Başlıklar, vurgular, listeler, tablolar, bağlantılar ve kod blokları korunur, stil bilgisi atılır.
- Tersine, Word'den HTML'e dönüştürdüğünüzde görseller dosyanın içine gömülür ve çıktı, karakter kodlaması belirtilmiş tek parça bir HTML belgesi olur; tarayıcıda Türkçe karakterler doğru görünür.
Sık Sorulan Sorular
HTML bir programlama dili mi?
Hayır. HTML bir işaretleme dilidir; içeriğin yapısını tarif eder ama döngü, koşul ya da hesaplama içermez. Sayfaya davranış kazandırmak için JavaScript kullanılır.
HTML5 ile HTML arasındaki fark nedir?
HTML5, 2014'te W3C Önerisi olan büyük sürümün adıdır. 2019'dan beri HTML, WHATWG'de sürüm numarası olmadan "HTML Living Standard" olarak geliştiriliyor. Bugün HTML5 ve HTML pratikte aynı şeyi ifade eder.
HTML dosyasını nasıl açarım?
Dosyaya çift tıklamanız yeterli; varsayılan tarayıcınızda açılır. Kaynak kodunu görmek için dosyayı bir metin düzenleyiciyle açın ya da tarayıcıda "Sayfa kaynağını görüntüle" seçeneğini kullanın.
HTML'i PDF'e çevirince görseller neden görünmüyor?
Görseller internetteki bir adresten çağrılıyorsa dönüştürücümüz güvenlik nedeniyle onları indirmez. Görselleri HTML'e data: URI olarak gömün ya da önce belgeyi Word'e çevirip görselleri ekleyin.
HTML dosyası güvenli mi?
HTML, JavaScript içerebildiği için bilinmeyen kaynaklardan gelen dosyaları açarken dikkatli olun; özellikle e-posta eki olarak gelen ve parola isteyen HTML sayfaları yaygın bir oltalama yöntemidir.
Kaynaklar
- WHATWG: HTML Living Standard, Parsing HTML documents
- W3C ve WHATWG Mutabakat Zaptı (28 Mayıs 2019)
- W3C basın bülteni: HTML5 Recommendation (28 Ekim 2014)
- W3C: HTML 4.01 Specification
- IETF RFC 1866: Hypertext Markup Language - 2.0
- Dave Raggett: A history of HTML
- W3Techs: Usage statistics of markup languages for websites


