---
title: 'Meta Etiketleri'
source: 'https://academia.sh/tr/kurslar/web-temelleri-ve-html/meta-etiketleri'
course: "Web'in Temelleri ve HTML"
language: tr
updated: '2026-08-17T18:09:31+00:00'
license: 'CC BY-SA 4.0'
---

# Meta Etiketleri

Karakter kümesi bildiriminin baytları nasıl yorumlattığı, kodlamayı belirleyen kaynakların önceliği, görüntü alanı bildirimi ve adlandırılmış üstveri.

Önceki ders karakter başvurularını çözerken bir varsayımda bulundu: baytların hangi kurala
göre karakterlere çevrildiği belliydi. Bu ders o varsayımı kaldırır ve baş bölümündeki
üstveri etiketlerini, en belirleyici olanından başlayarak ele alır.

`meta` ögesi boş bir ögedir ve tek başına bir anlamı yoktur; anlamı taşıyan şey
öznitelikleridir. Dört farklı işlevde kullanılır ve bunlar birbirinden bağımsızdır.

## Karakter Kümesi Bildirimi

Bilgisayarlar Nasıl Çalışır kursundaki Karakter Kodlamaları dersi tek bir noktayı kurmuştu:
bayt dizisi, hangi kurala göre yazıldığını kendi içinde söylemez. Aynı baytlar farklı
kurallarla farklı karakterlere çözülür.

```js
// charset.mjs — ayni baytlar, iki farkli kodlama varsayimi
const metin = "Sıcaklık: -4 °C";
const baytlar = Buffer.from(metin, "utf8");

const kodNoktalari = (d) =>
  [...d].map((k) => "U+" + k.codePointAt(0).toString(16).toUpperCase().padStart(4, "0")).join(" ");

console.log("baytlar         :", baytlar.toString("hex").match(/../g).join(" "));
console.log("bayt sayisi     :", baytlar.length);
console.log("karakter sayisi :", metin.length);
console.log("utf-8 okuma     :", baytlar.toString("utf8"));
console.log("latin1 okuma    :", baytlar.toString("latin1"));
console.log("utf-8 ilk uc    :", kodNoktalari(baytlar.toString("utf8").slice(0, 3)));
console.log("latin1 ilk bes  :", kodNoktalari(baytlar.toString("latin1").slice(0, 5)));

console.log("--- charset bildirimi belgenin ilk baytlarinda aranir ---");
const bas = '<!doctype html>\n<html lang="tr">\n<head>\n<meta charset="utf-8">\n';
console.log("bildirimin bittigi bayt :", Buffer.byteLength(bas));
console.log("1024 baytin altinda mi  :", Buffer.byteLength(bas) < 1024);
```

```
baytlar         : 53 c4 b1 63 61 6b 6c c4 b1 6b 3a 20 2d 34 20 c2 b0 43
bayt sayisi     : 18
karakter sayisi : 15
utf-8 okuma     : Sıcaklık: -4 °C
latin1 okuma    : SÄ±caklÄ±k: -4 Â°C
utf-8 ilk uc    : U+0053 U+0131 U+0063
latin1 ilk bes  : U+0053 U+00C4 U+00B1 U+0063 U+0061
--- charset bildirimi belgenin ilk baytlarinda aranir ---
bildirimin bittigi bayt : 63
1024 baytin altinda mi  : true
```

`c4 b1` bayt çifti, bir kuralda tek bir karaktere (U+0131, `ı`) çözülür; başka bir kuralda
iki ayrı karaktere (U+00C4 ve U+00B1). Baytlar aynıdır; farklı olan yalnızca yorumdur.
On sekiz bayt, birinci okumada on beş, ikinci okumada on sekiz karakter verir.

Belgenin bildirimi tek satırdır:

```html
<meta charset="utf-8">
```

Bu satırın etkisi görsel değil, yapısaldır. Bildirim yanlışsa yalnızca birkaç karakter
bozulmaz; belge farklı bir karakter dizisine çözülür ve etiket adları bile etkilenebilir.

## Bildirimin Yeri Neden Önemli

Burada döngüsel bir sorun vardır. Bildirimin kendisi belgenin içindedir; onu okumak için
belgeyi çözmek, çözmek için de bildirimi okumak gerekir.

Çözüm bir ön taramadır. Ayrıştırıcı belgenin ilk bölümünü —tanımlı sınır 1024 bayttır—
tek baytlık bir varsayımla tarar ve yalnızca bir `charset` bildirimi arar. Bulursa
belgeyi o kuralla ayrıştırmaya başlar.

Bunun iki sonucu vardır. Birincisi, bildirim ilk 1024 bayt içinde olmalıdır; baş bölümünün
en başına yazılmasının nedeni budur. İkincisi, bildirim bu sınırın dışında kalır veya ön
tarama sırasında varsayılan kuralla bulunamazsa, ayrıştırıcı yanlış kuralla başlamış olur;
bildirimi sonradan gördüğünde ayrıştırmayı **baştan** yapması gerekir. Bu yeniden başlatma
ölçülebilir bir maliyettir ve bildirimin konumuyla önlenir.

## Kodlamayı Belirleyen Kaynaklar

Belgedeki `meta` bildirimi tek kaynak değildir. Sıralı bir öncelik listesi vardır.

| Öncelik | Kaynak |
|---|---|
| 1 | Bayt sırası imi (BOM) |
| 2 | Kullanıcının açık seçimi |
| 3 | Taşıma katmanı: HTTP `Content-Type` başlığındaki `charset` |
| 4 | Belgedeki `meta charset` bildirimi |
| 5 | Sezme ve varsayılan |

Bayt sırası imi kavramı Bilgisayarlar Nasıl Çalışır kursundaki Bayt Sırası dersinde
tanımlanmıştı; belgenin başındaki birkaç bayt kodlamayı belirtir ve her şeyi bastırır.

Üçüncü sıra dikkat gerektirir: **HTTP başlığı belgedeki bildirimi bastırır.** İnternet
Nasıl Çalışır kursundaki HTTP İstek ve Yanıtı dersinde `Content-Type` başlığının bir
`charset` parametresi taşıdığı görülmüştü. O parametre, belgede başka bir bildirim olsa
bile geçerlidir. Sunucu yapılandırması ile belge birbiriyle çelişiyorsa kazanan sunucudur;
bu, bozuk görünen karakterlerin belgede aranıp bulunamadığı durumların sık nedenidir.

Beşinci sıra bir güvence değildir. Sezme, belgenin içeriğine bakarak tahmin yürütür ve
tahmin yanlış olabilir. Bildirim yazmamak, sonucun ortama bırakılması demektir.

## Görüntü Alanı Bildirimi

İkinci `meta` kullanımı, belgenin dar ekranlarda nasıl ölçekleneceğini bildirir.

```html
<meta name="viewport" content="width=device-width, initial-scale=1">
```

Bu bildirimin gerekçesi tarihseldir. Dar ekranlı aygıtlar, dar ekran için yazılmamış
belgeleri okunabilir kılmak üzere geniş bir sanal görüntü alanı varsayar ve sayfayı
küçültür. Bildirim bu varsayımı kapatır: görüntü alanının genişliği aygıtın kendi genişliği
sayılır ve başlangıç ölçeği birdir.

Bildirimin kendisi bir sunum kararı değildir; sunum katmanının hangi genişlik üzerinde
hesap yapacağını belirler. Bu nedenle dar ekranı gözeten her belgede bulunur ve sonraki
kursta ele alınacak duyarlı düzenin ön koşuludur.

`user-scalable=no` gibi ölçeklemeyi kapatan değerler yazılabilir. Yazılmamalıdır:
büyütme, görme gücü sınırlı kullanıcılar için tek erişim yoludur ve kapatılması bir
erişilebilirlik ihlalidir.

## Adlandırılmış Üstveri

Üçüncü kullanım, `name` ve `content` çiftiyle belgeye ilişkin bilgi bildirir. Bu bilgi
çizilmez; belgeyi işleyen programlar için taşınır.

```html
<meta name="description" content="Kuzey Yamaç otomatik ölçüm istasyonunun
      sıcaklık, bağıl nem, rüzgâr hızı ve yağış kayıtları.">
<meta name="robots" content="index, follow">
<meta name="author" content="Ölçüm Ağı Çalışma Grubu">
```

`description` değeri, belgenin arama sonuçlarında görünen özeti olarak kullanılabilir.
Kullanılacağı garanti değildir — dizinleyiciler belgenin içeriğinden daha uygun bir özet
üretmeyi seçebilir. Yazılması yine de gerekçelidir: yazılmadığında seçim bütünüyle
dizinleyiciye kalır.

`robots` değeri dizinleyicilere belgenin dizinlenip dizinlenmeyeceğini ve bağlantılarının
izlenip izlenmeyeceğini bildirir. Bu bir erişim denetimi değildir; bildirime uymayan bir
istemci belgeyi yine de okur. Gizlilik gerektiren içerik yetkilendirmeyle korunur,
üstveriyle değil.

Belgeyi başka ortamlarda önizleyen sistemler için ayrı üstveri sözleşmeleri vardır; bunlar
`meta` ögesinin aynı düzeneğini kullanır ve başlık, açıklama, görsel adresi gibi alanları
bildirir. Sözleşme adları platformdan platforma değişir; ortak nokta, önizlemenin belgenin
içeriğinden tahmin edilmesi yerine açıkça bildirilmesidir.

## Eşdeğer Başlıklar

Dördüncü kullanım, `http-equiv` özniteliğiyle bir HTTP yanıt başlığının eşdeğerini bildirir.

```html
<meta http-equiv="content-security-policy" content="default-src 'self'">
```

Bu düzenek, sunucu başlıklarını değiştirme olanağı olmayan durumlar içindir. Olanak varsa
gerçek başlık yeğlenir: başlık belge ayrıştırılmadan önce geçerli olur, `http-equiv`
bildirimi ise ayrıştırıcı oraya vardığında. Aradaki fark, güvenlik bildirimlerinde
belirleyicidir.

## İstasyon Belgesinin Baş Bölümü

Kurs boyunca geliştirilen belgenin baş bölümü şu hâle gelir:

```html
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Kuzey Yamaç Ölçüm İstasyonu — Ölçüm Ağı</title>
  <meta name="description" content="Kuzey Yamaç otomatik ölçüm istasyonunun sıcaklık,
        bağıl nem, rüzgâr hızı ve yağış kayıtları.">
</head>
```

Sıra rastlantısal değildir: kodlama bildirimi ilk sıradadır, çünkü kendisinden sonraki her
şeyin nasıl okunacağını belirler. `title` ögesi, önceki derste belirtildiği gibi belgeyi
bağlamı dışında adlandırır ve burada site adını da taşır.

## Özet

- Karakter kümesi bildirimi baytların hangi kuralla karakterlere çevrileceğini söyler;
  yanlış bildirim belgenin tamamını farklı bir karakter dizisine çözer.
- Bildirim, ayrıştırıcının ön taraması nedeniyle ilk 1024 bayt içinde olmalıdır; geç
  bulunması ayrıştırmanın baştan yapılmasına yol açar.
- Kodlamayı belirleyen kaynakların önceliği vardır ve HTTP başlığı belgedeki bildirimi
  bastırır.
- Görüntü alanı bildirimi, sunum katmanının hangi genişlik üzerinde hesap yapacağını
  belirler; ölçeklemeyi kapatan değerler erişilebilirliği bozar.
- Adlandırılmış üstveri belgeyi işleyen programlar içindir ve bağlayıcı değildir;
  dizinleme bildirimleri bir erişim denetimi sağlamaz.
- `http-equiv` bildirimleri gerçek HTTP başlıklarının yerini tutar ancak daha geç geçerli
  olur; olanak varsa başlık yeğlenir.

## Sonraki Adım

Baş bölümü tamamlandı; sıra gövdededir. Gövdenin ilk yapısal kararı başlıklardır: belgenin
hangi bölümlere ayrıldığını ve bu bölümlerin birbirine göre düzeyini bildiren etiketler.
Sonraki ders başlık düzeyinin neden bir yazı tipi ölçüsü değil bir yapı bildirimi olduğunu
ve düzeyi atlamanın belgenin ana hattını nasıl bozduğunu gösterir.
