2. İletilerin Sözdizimsel Çözümlemesi

2.1. Genel Bakış

En temel seviyede, bir ileti bir karakter silsilesinden ibarettir. Bu standartla uyumlu bir ileti ise, değerleri 1 ile 127 arasında olan ve US-ASCII karakterleri [ASCII] olarak da bilinen karakterlerden oluşur. Anlatışta kısalık için, bu belgenin bazı yerlerinde bu karakter aralığından basitçe "US-ASCII karakterleri" olarak bahsedilecektir.

Bilginize

Bu standart, 1 .. 127 aralığındaki US-ASCII karakterlerinden oluşan iletilerin belirtimidir. Özellikle bu aralığın dışındaki karakterlere izin vererek bu standardı genişleten MIME belge silsilesi [RFC2045, RFC2046, RFC2047, RFC2048, RFC2049] içinde yer alan başka belgeler de vardır. Bu mekanizmaların açıklanması bu standardın kapsamında değildir.

İletiler karakter satırlarına bölünmüştür. Bir satır, satırbaşı ve satırsonu karakterlerinden oluşan iki karakterlik bir dizge ile biten bir karakter silsilesidir; satırı sonlandıran bu iki karakterin, satırbaşı (carriage return - CR) ve satırsonu (line feed - LF) karakterlerinin ASCII değerleri sırayla 13 ve 10 olup bu karakter çifti belge içinde "CRLF" olarak yazılmış olacaktır.

2.1.1. Satır Uzunluğu ve Sınırlar

Bir satırda bulunması gereken karakterlerin sayısı ile ilgili olarak bu standartta iki sınır vardır. CRLF hariç olmak üzere, her satırda olması gereken karakter sayısı 998 karakterden fazla olamaz *ZORUNLU* ve 78 karakterden fazla olmasa iyi olur *ÖNERİ*.

998 karakterlik sınır, Genel Ağ İleti Biçiminde iletiler alan, gönderen veya saklayan gerçeklenimlerden çoğunun basitçe 998 karakterden daha uzun satırlarla çalışamamasından dolayıdır. Alıcı gerçeklenimleri güçlü durmak saiki ile herhangi bir sayıdaki karakter içeren satırlarla çalışabilse iyi olurdu. Bununla birlikte, bir satırda CRLF dahil 1000 karakterden daha fazlasını kabul etmeyen ([RFC2821]'deki aktarım gereksinimleriyle uyumluluk adına) o kadar çok gerçeklenim vardır ki, onlar için böyle iletilerin gerçeklenimler tarafından oluşturmaması önemlidir.

Daha kısıtlayıcı olan 78 karakter önerisi ise, uzun satırları sarmalama sonucu kırparak veya bir felakete dönüştürerek gösteren, bir satırda 78 satırdan fazlasını gösteren çoğu kullanıcı arayüzü gerçeklenimi ile, böyle gerçeklenimlerin bu belirtimin (ve bilgi kaybına sebep oluyorlarsa [RFC2821]'in de) amacına uygun olmayışına rağmen, bağdaşırlığı sağlamak içindir. Tekrar, bu sınırlama iletilere konmuş olmasına rağmen bile, güçlü olmak saikiyle karakter sayısı ne olursa olsun (elbette, eninde sonunda 998 karakterlik sınıra kadar) iletilerin her satırını gösteren gerçeklenimler üzerinde zorlayıcıdır.

2.2. Başlık Alanları

Başlık alanları bir iki nokta üstüste ile biten bir alan ismini izleyen CRLF ile sonlandırımış başlık gövdesinden oluşan satırlardır. Bir alan ismi, iki nokta üstüste karakteri hariç, basılabilir US-ASCII karakterlerden (yani, 33 ve 126. karakterler dahil, bunlar arasında kalan karakterler) oluşmalıdır *ZORUNLU*. Bir alan gövdesi ise CRLF hariç her US-ASCII karakterini içerebilir. Bununla birlikte, Uzun Başlık Alanları bölümünde açıklandığı gibi başlık katlandığında ve serildiğinde, alan gövdesi CRLF içerebilir. Tüm alan gövdeleri bu standardın Sözdizimi ve Atıl Sözdizimi bölümlerinde açıklanan sözdizimine uygun olmalıdır *ZORUNLU*.

2.2.1. Yapısız Başlık Alanı Gövdeleri

Bu standartta bazı alan gövdeleri bir kısıtlama olmaksızın basitçe "yapısız" olarak tanımlanmıştır (CRLF dışında US-ASCII karakterlerini içeren dizgeler olarak aşağıda belirtilmiştir). Bunlara yapısız alan gövdeleri denir. Anlambilimsel olarak, "yapısız" alan gövdeleri hiçbir işleme tabi tutulmaksızın (Uzun Başlık Alanları bölümünde açıklanan başlıklara katlama ve serme uygulamaksızın) basitçe tek bir satır olarak ele alınırlar.

2.2.2. Yapılı Başlık Alanı Gövdeleri

Bu standartta bazı alan gövdeleri, yukarıda açıklanan yapısız alan gövdelerinden daha kısıtlayıcı olan belirli bir sözdizimsel yapıya sahiptir. Bunlara "yapılı" alan gövdeleri denir. Yapılı alan gövdeleri, bu standardın Sözdizimi ve Atıl Sözdizimi bölümlerinde açıklandığı gibi belirli bir sözdizimsel dizgecikler silsilesidir. Bu dizgeciklerin çoğunun açıklamalarla (Boşlukların ve Açıklamaların Katlanması bölümünde açıklandığı gibi), boşluk ve yatay sekme (ASCII değerleri sırayla 32 ve 9) karakterleriyle (belgenin devamında kısaca BOŞLUK olarak atıfta bulunulacaktır) başlamasına ve bitmesine izin verilir (sözdizimleri gereği). Bu BOŞLUK karakterleri ayrıca, Uzun Başlık Alanları bölümünde açıklanan başlık katlama ve sermenin de konusudur. Yapılı alan gövdelerinin anlambilimsel çözümlemesi sözdizimleri ile birlikte verilmiştir.

2.2.3. Uzun Başlık Alanları

Her başlık alanı mantıksal olarak, başlık ismi, iki nokta imi ve alan gövdesinden oluşan tek bir satırdır. Uzlaşımsal olarak, yine de ve her satırdaki 998/78 karakterlik sınırlamalarla birlikte, bir başlık alanının başlık gövdesini oluşturan bölümü çok satırlı gösterime bölünebilir; buna "katlama" denir. Genel kural olarak bu standardın her yerinde, boşluk karakterlerinin öncesine ve sonrasına CRLF yerleştirerek boşluk karakterlerinin (sadece BOŞKRK ve YSEK değil) katlanmasına izin verilmiştir. Örneğin, şöyle bir başlık alanı:

    Subject: Bu bir denemedir

böyle görünebilir:

    Subject: Bu
    bir denemedir

Bilginize

Yapılı alan gövdelerinin tanımı gereği, katlama sözdizimsel dizgeciklere hatta bunlara kendi içlerinde bile uygulanabilir. Bu bakımdan, katlamanın nispeten yüksek seviyeli sözdizimsel yapılar arasına CRLF yerleştirmekle sınırlanması gerekir *ÖNERİ*. Yani, örneğin, bir alan gövdesi virgül ayraçlı değerler olarak tanımlanmışsa, katlamanın başka yerlerde de yapılmasına izin verilmiş olsa bile virgülle ayrılarak yapılandırılmış her öğeden sonra yapılmasının tercih edilmesi önerilir.

Katlamanın sonucu olarak bu çok satırlı gösterimin tek satırlı gösterime dönüştürülmesi işlemine "serme" adı verilir. Serme işlemi basitçe boşlukları izleyen CRLF karakterlerinin silinmesinden başka birşey değildir. Her başlık alanı sözdizimsel ve anlambilimsel değerlendirmeye tabi tutulurken serme uygulanmış biçimiyle ele alınmalıdır.

2.3. Gövde

İleti gövdesi basitçe US-ASCII karakterlerden oluşan satırlardan oluşur. Gövde ile ilgili sadece iki sınırlama vardır:

  • CR ve LF karakterleri sadece CRLF şeklinde birleşik olarak kullanılabilir *ZORUNLU*; gövdede tek başlarına yer alamaz *ZORUNLU*.
  • Gövdenin karakter içeren satırlarının uzunlukları, satırı sonlandıran CRLF hariç 998 karakterden uzun olamaz *ZORUNLU* ve 78 karakterden uzun olmasa iyi olur *ÖNERİ*.

Bilginize

Evvelce bahsedildiği gibi, özellikle, ileti gövdelerinin farklı çeşitlerini mümkün kılarak bu standardı genişleten, MIME belgeleri [RFC2045, RFC2046, RFC2048, RFC2049] gibi, başka standart belgeleri de bulunmaktadır. Tekrar belirtelim ki, bu mekanizmalar bu belgenin kapsamında değildir.