Uygulama Katmanı Protokolleri
Uygulama katmanı protokolleri, ağa bağlı programların mesajları nasıl değiş tokuş ettiğini — mesaj formatlarını, istek ve yanıt dizilerini ve her alanın anlamını — tanımlayarak, ham taşıma bağlantılarını web ve e-posta gibi faydalı hizmetlere dönüştürmektedir.
Tanım
Uygulama katmanı protokolü, farklı ana bilgisayarlardaki uygulama süreçlerinin TCP veya UDP gibi taşıma katmanı hizmetleri üzerine inşa edilerek iletişim kurduğu mesaj formatlarını, değişim kalıplarını ve anlambilimi tanımlayan bir kurallar bütünüdür.
Kapsam
Bu konu, taşıma hizmetleri üzerine inşa edilmiş uygulama protokollerinin tasarımını ve işleyişini kapsamaktadır: uygulama mimarileri (istemci-sunucu ve eşler arası), protokollere özgü ortak öğeler (mesaj türleri, sözdizimi, anlambilim ve kurallar) ve kanonik örnekler — web için HTTP, e-posta için SMTP ve IMAP ile dosya transferi. Protokollerin TCP veya UDP'yi nasıl kullandığı, kalıcı ve kalıcı olmayan bağlantılar ile istek-yanıt kalıpları ele alınmaktadır. Ayrı konularda ele alınan adlandırma ve içerik dağıtım altyapısı ile alt katmandaki taşıma mekanizmaları bu kapsamın dışındadır.
Temel sorular
- Herhangi bir uygulama katmanı protokolünü tanımlayan ortak öğeler nelerdir?
- İstemci-sunucu ve eşler arası uygulama mimarileri nasıl farklılık gösterir?
- HTTP, web için istekleri ve yanıtları nasıl yapılandırır?
- SMTP ve IMAP gibi e-posta protokolleri postayı nasıl taşır ve erişim sağlar?
- Uygulama protokolleri, TCP ve UDP gibi taşıma hizmetlerini nasıl seçer ve kullanır?
Anahtar kavramlar
- istemci-sunucu ve eşler arası mimariler
- mesaj formatı, sözdizimi ve anlambilim
- HTTP istekleri ve yanıtları
- HTTP metotları ve durum kodları
- kalıcı ve kalıcı olmayan bağlantılar
- SMTP ve e-posta transferi
- IMAP ve posta erişimi
- uygulamalar tarafından TCP ve UDP kullanımı
Temel kuramlar
- TCP üzerinden istek-yanıt protokolleri
- Birçok uygulama protokolü, güvenilir bir TCP bağlantısı üzerinden istek-yanıt kalıbını takip etmektedir: bir istemci yapılandırılmış bir istek gönderir, sunucu bir yanıt döndürür; bu durum HTTP örneğinde olduğu gibi metotlar, durum kodları ve başlıklar için belirli kurallarla işlemektedir.
- Uygulama mimarileri
- Uygulamalar, istemciler tarafından sürekli açık sunucularla iletişim kurulan istemci-sunucu şeklinde veya ana bilgisayarların hem hizmet talep ettiği hem de sağladığı eşler arası şeklinde düzenlenmektedir; bu seçim ölçeklenebilirliği, yönetimi ve protokollerin nasıl tasarlandığını etkilemektedir.
- Depola ve ilet mesajlaşması
- E-posta, çok protokollü bir hizmeti örneklemektedir: SMTP, sunucular arasında postayı depola ve ilet yöntemiyle iterken, alma protokolleri kullanıcıların posta kutularına erişmesini sağlayarak mesaj transferini mesaj erişiminden ayırmaktadır.
Klinik önem
Uygulama katmanı protokolleri, yazılım ile ağ arasındaki doğrudan arayüzü oluşturmaktadır: HTTP, web'in ve çoğu modern uygulama programlama arayüzünün temelini oluşturmakta, e-posta protokolleri küresel mesajlaşmayı taşımakta ve istek-yanıt ile mimari kalıplar sayısız hizmette tekrar etmektedir. Bunları anlamak, ağa bağlı uygulamalar geliştirmek, API tasarlamak ve yavaş sayfa yüklemelerinden e-posta teslimat hatalarına kadar çeşitli sorunları gidermek için kritik öneme sahiptir.
Tarihçe
İnternet'in ilk uygulamaları e-posta (SMTP ile) ve dosya transferiydi. Tim Berners-Lee tarafından 1990 civarında oluşturulan web, basit bir belge alma protokolünden modern web uygulamalarının ve API'lerinin temeli haline gelen HTTP'yi tanıttı; HTTP/1.1, HTTP/2 ve HTTP/3 ile performans iyileştirildi ve anlambilim RFC 9110 (2022) belgesinde pekiştirildi.
Öne çıkan isimler
- Tim Berners-Lee
- Roy Fielding
- Jon Postel
- John Klensin
İlgili konular
Temel eserler
- rfc9110
- rfc5321
- kurose2021
Sıkça sorulan sorular
- Bir uygulama katmanı protokolü aslında neyi belirtir?
- Değiş tokuş edilen mesaj türlerini (istekler ve yanıtlar gibi), bu mesajların kesin sözdizimini (alanları ve nasıl kodlandıkları), her alanın anlamını ve mesajların ne zaman ve nasıl gönderileceğine dair kuralları belirtmektedir. Örneğin HTTP, metotları, başlıkları, durum kodlarını ve istek-yanıt akışını tanımlamaktadır.
- Web neden UDP yerine TCP kullanır?
- Web sayfaları ve API'ler genellikle potansiyel olarak büyük yanıtların güvenilir, sıralı teslimatına ihtiyaç duymaktadır; TCP bunu, ağı paylaşmak için tıkanıklık kontrolüyle birlikte sağlamaktadır. HTTP geleneksel olarak bu nedenle TCP üzerinden çalışmaktadır, ancak HTTP/3, UDP üzerine inşa edilmiş ancak güvenilirliği ve tıkanıklık kontrolünü kendi içinde yeniden sunan QUIC üzerinden çalışmaktadır.