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
veLF
karakterleri sadeceCRLF
ş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İ*.