Bölüm 4 / 33
Ağ, İnternet ve HTTP Temelleri
Tarayıcıdan sunucuya kadar bir isteğin geçtiği ağ katmanlarını ve web protokollerini açıklar.
4 canlı örnek — seçerek incele
İlgili kavramlar: HTTP, Request, Response, Header
HTTP istek / yanıt
POST /api/login
Content-Type: application/json
{ "email": "[email protected]" }HTTP/1.1 200 OK
Set-Cookie: sid=…
{ "ok": true }Cihazların veri alışverişi için birbirine bağlandığı iletişim sistemi.
- LANT
Ev, ofis veya veri merkezi gibi sınırlı alandaki yerel ağ.
- WANT
Şehirler veya ülkeler gibi geniş alanları bağlayan ağ.
Birbirine bağlı ağların küresel ağı.
Bir sunucudan veri veya hizmet isteyen uygulama ya da cihaz.
İstemcilerden gelen isteklere hizmet veren sistem.
- HostT
Ağ üzerinde adreslenebilen cihaz veya sistem.
Bir cihazın ağ üzerindeki sayısal adresi.
- IPv4T
32 bitlik ve noktalı sayı biçimindeki IP adres standardı.
- IPv6O
Daha geniş adres alanı sağlayan 128 bitlik IP standardı.
Yerel ağ içinde kullanılan ve internette doğrudan yönlendirilmeyen IP.
İnternetten erişilebilen genel IP adresi.
Zamanla değişmeyen sabit IP adresi.
Servis sağlayıcı veya DHCP tarafından değişebilir şekilde atanan IP.
Ağ arayüzüne ait donanımsal adres.
Bir IP ağının daha küçük mantıksal ağlara bölünmüş kısmı.
IP adresinin ağ ve cihaz bölümlerini ayıran maske.
Bir ağdan başka bir ağa çıkışı sağlayan yönlendirici.
Paketleri farklı ağlar arasında yönlendiren cihaz veya yazılım.
Yerel ağdaki cihazları bağlayan ve frame ileten ağ cihazı.
- NATO
Özel IP adreslerini ortak bir public IP üzerinden internete çıkaran çeviri mekanizması.
Ağ trafiğini kurallara göre izin veren veya engelleyen güvenlik katmanı.
Ağ üzerinden taşınan küçük veri birimi.
İki sistemin nasıl iletişim kuracağını belirleyen kurallar bütünü.
- TCPO
Bağlantı tabanlı, sıralı ve güvenilir veri iletim protokolü.
- UDPO
Daha düşük ek yükle çalışan, bağlantısız ve teslim garantisi vermeyen protokol.
Bir ağ bağlantısının IP ve port birleşimiyle temsil edilen uç noktası.
Bir makinedeki belirli ağ servisini ayıran 0-65535 arası sayı.
HTTP 80, HTTPS 443 ve SSH 22 gibi standart servis portları.
- DNST
Alan adlarını IP adreslerine çeviren dağıtık sistem.
Bir internet kaynağının insanlar tarafından okunabilir adı.
- TLDT
.com, .net ve .tr gibi alan adının en sağındaki üst seviye bölüm.
api.example.com gibi ana alan adı altında oluşturulan alt alan.
Bir domainin DNS kayıtlarını yetkili olarak sunan sunucu.
Alan adının adım adım IP adresine çözülmesi süreci.
Daha önce çözülen DNS yanıtlarının belirli süre saklanması.
- TTLO
DNS veya cache kaydının ne kadar süre geçerli kalacağını belirten değer.
Bir hostname'i IPv4 adresine bağlayan DNS kaydı.
Bir hostname'i IPv6 adresine bağlayan DNS kaydı.
Bir hostname'i başka bir hostname'e yönlendiren DNS kaydı.
Bir domainin e-posta sunucularını belirleyen DNS kaydı.
Doğrulama, SPF, DKIM ve çeşitli metin bilgileri için kullanılan DNS kaydı.
Domain için yetkili nameserver'ları belirleyen DNS kaydı.
Belirli bir servisin hostname ve port bilgisini yayınlayan DNS kaydı.
- HTTPT
Web istemcileri ile sunucular arasında veri taşıyan uygulama protokolü.
HTTP iletişimini TLS ile şifreleyen güvenli protokol.
- TLSO
Ağ iletişiminin gizliliğini ve bütünlüğünü sağlayan şifreleme protokolü.
Domain ile sunucu kimliğini doğrulayan ve TLS bağlantısını sağlayan sertifika.
İstemci ve sunucunun bağlantı parametreleriyle şifreleme anahtarlarında anlaşma süreci.
- URLT
Bir web kaynağının protokol, host, yol ve parametrelerden oluşan adresi.
URL'nin http, https veya ftp gibi protokol bölümü.
URL içindeki domain veya sunucu adı.
- PathT
Sunucu üzerindeki kaynak yolunu belirten URL bölümü.
URL sonunda anahtar-değer parametrelerini taşıyan bölüm.
URL içinde # sonrası sayfa içi hedefi belirten ve sunucuya gönderilmeyen bölüm.
İstemcinin sunucuya gönderdiği metot, header ve gerekirse body içeren mesaj.
Sunucunun status code, header ve body ile verdiği cevap.
İsteğin amacını belirten GET, POST, PUT, PATCH veya DELETE fiili.
- GETT
Bir kaynağı okumak veya listelemek için kullanılan HTTP metodu.
- POSTT
Yeni veri veya işlem oluşturmak için kullanılan HTTP metodu.
- PUTO
Bir kaynağı bütünüyle oluşturmak veya değiştirmek için kullanılan metot.
Bir kaynağın belirli alanlarını kısmi güncellemek için kullanılan metot.
Bir kaynağı silmek için kullanılan HTTP metodu.
- HEADO
GET yanıtının body olmadan yalnızca header bilgisini isteyen metot.
Bir endpoint'in desteklediği yöntemleri ve CORS kabiliyetlerini sorgulayan metot.
İstek ve yanıta ilişkin metadata taşıyan anahtar-değer alanı.
POST, PUT veya PATCH isteğinde gönderilen veri gövdesi.
Sunucunun istemciye döndürdüğü asıl içerik.
Body içeriğinin JSON, HTML veya görsel gibi medya türünü belirtir.
İstemcinin hangi yanıt formatlarını kabul ettiğini bildirir.
İsteği yapan tarayıcı veya istemci hakkında bilgi verir.
Kullanıcının hangi sayfadan geldiğini belirten HTTP header'ı.
HTTP işleminin sonucunu üç haneli kodla ifade eder.
- 2xxT
Başarılı HTTP yanıtları sınıfı.
- 3xxT
Yönlendirme ve yeniden kullanım yanıtları sınıfı.
- 4xxT
İstemci kaynaklı hata yanıtları sınıfı.
- 5xxT
Sunucu kaynaklı hata yanıtları sınıfı.
İsteğin başarıyla tamamlandığını belirtir.
Yeni bir kaynağın başarıyla oluşturulduğunu belirtir.
İşlem başarılı ancak döndürülecek body olmadığını belirtir.
Kaynağın kalıcı olarak başka URL'ye taşındığını belirtir.
Kaynağın geçici olarak başka URL'de olduğunu belirtir.
İstemci cache'indeki kaynağın hâlâ güncel olduğunu belirtir.
İstek yapısının veya verisinin geçersiz olduğunu belirtir.
Kimlik bilinse de kaynağa erişim izni olmadığını belirtir.
İstenen kaynağın bulunamadığını belirtir.
İsteğin mevcut kaynak durumu ile çakıştığını belirtir.
İstek biçimi doğru olsa da doğrulama nedeniyle işlenemediğini belirtir.
İstemcinin hız limitini aştığını belirtir.
Sunucuda beklenmeyen hata oluştuğunu belirtir.
Proxy'nin arka sunucudan geçerli yanıt alamadığını belirtir.
Proxy'nin arka sunucudan zamanında yanıt alamadığını belirtir.
İstek ile yanıt arasındaki gecikme süresi.
Birim zamanda taşınabilecek veri miktarı.
Sistemin gerçek koşullarda işleyebildiği veri veya istek miktarı.
Paketin hedefe gidip geri dönme süresi.
İstemci ile hedef sunucu arasında aracı olan sistem.
İstekleri bir veya daha fazla arka sunucuya yönlendiren ön katman.
Trafiği birden fazla sunucu veya instance arasında dağıtan sistem.
Aynı TCP bağlantısını birden fazla HTTP isteği için yeniden kullanma.
Multiplexing ve header sıkıştırma gibi özelliklerle HTTP'yi iyileştiren sürüm.
QUIC ve UDP üzerinde çalışan modern HTTP sürümü.
- CORSO
Tarayıcının farklı origin'ler arasındaki istekler için uyguladığı güvenlik politikası.
Scheme, hostname ve port birleşimi.
Tarayıcının bazı cross-origin isteklerden önce OPTIONS ile izin kontrolü yapması.
Kullanıcının birden fazla isteğini aynı oturum altında ilişkilendiren yapı.
HTTP cache davranışını ve geçerlilik süresini belirleyen header.
- ETagO
Kaynak sürümünü temsil edip koşullu istek yapılmasını sağlayan tanımlayıcı.
HTTP body boyutunu gzip veya Brotli ile azaltma.
İstemci ve sunucu arasında sürekli, çift yönlü iletişim bağlantısı.
- SSEO
Sunucunun açık HTTP bağlantısı üzerinden istemciye tek yönlü olay göndermesi.
Bir olay gerçekleştiğinde başka sisteme otomatik HTTP isteği gönderme mekanizması.
| Kavram | Seviye | Kısa açıklama |
|---|---|---|
| Network | T | Cihazların veri alışverişi için birbirine bağlandığı iletişim sistemi. |
| LAN | T | Ev, ofis veya veri merkezi gibi sınırlı alandaki yerel ağ. |
| WAN | T | Şehirler veya ülkeler gibi geniş alanları bağlayan ağ. |
| Internet | T | Birbirine bağlı ağların küresel ağı. |
| Client | T | Bir sunucudan veri veya hizmet isteyen uygulama ya da cihaz. |
| Server | T | İstemcilerden gelen isteklere hizmet veren sistem. |
| Host | T | Ağ üzerinde adreslenebilen cihaz veya sistem. |
| IP Address | T | Bir cihazın ağ üzerindeki sayısal adresi. |
| IPv4 | T | 32 bitlik ve noktalı sayı biçimindeki IP adres standardı. |
| IPv6 | O | Daha geniş adres alanı sağlayan 128 bitlik IP standardı. |
| Private IP | T | Yerel ağ içinde kullanılan ve internette doğrudan yönlendirilmeyen IP. |
| Public IP | T | İnternetten erişilebilen genel IP adresi. |
| Static IP | T | Zamanla değişmeyen sabit IP adresi. |
| Dynamic IP | T | Servis sağlayıcı veya DHCP tarafından değişebilir şekilde atanan IP. |
| MAC Address | O | Ağ arayüzüne ait donanımsal adres. |
| Subnet | O | Bir IP ağının daha küçük mantıksal ağlara bölünmüş kısmı. |
| Subnet Mask | O | IP adresinin ağ ve cihaz bölümlerini ayıran maske. |
| Gateway | T | Bir ağdan başka bir ağa çıkışı sağlayan yönlendirici. |
| Router | T | Paketleri farklı ağlar arasında yönlendiren cihaz veya yazılım. |
| Switch | T | Yerel ağdaki cihazları bağlayan ve frame ileten ağ cihazı. |
| NAT | O | Özel IP adreslerini ortak bir public IP üzerinden internete çıkaran çeviri mekanizması. |
| Firewall | T | Ağ trafiğini kurallara göre izin veren veya engelleyen güvenlik katmanı. |
| Packet | O | Ağ üzerinden taşınan küçük veri birimi. |
| Protocol | T | İki sistemin nasıl iletişim kuracağını belirleyen kurallar bütünü. |
| TCP | O | Bağlantı tabanlı, sıralı ve güvenilir veri iletim protokolü. |
| UDP | O | Daha düşük ek yükle çalışan, bağlantısız ve teslim garantisi vermeyen protokol. |
| Socket | O | Bir ağ bağlantısının IP ve port birleşimiyle temsil edilen uç noktası. |
| Port Number | T | Bir makinedeki belirli ağ servisini ayıran 0-65535 arası sayı. |
| Well-known Port | T | HTTP 80, HTTPS 443 ve SSH 22 gibi standart servis portları. |
| DNS | T | Alan adlarını IP adreslerine çeviren dağıtık sistem. |
| Domain Name | T | Bir internet kaynağının insanlar tarafından okunabilir adı. |
| TLD | T | .com, .net ve .tr gibi alan adının en sağındaki üst seviye bölüm. |
| Subdomain | T | api.example.com gibi ana alan adı altında oluşturulan alt alan. |
| Nameserver | T | Bir domainin DNS kayıtlarını yetkili olarak sunan sunucu. |
| DNS Resolution | O | Alan adının adım adım IP adresine çözülmesi süreci. |
| DNS Cache | O | Daha önce çözülen DNS yanıtlarının belirli süre saklanması. |
| TTL | O | DNS veya cache kaydının ne kadar süre geçerli kalacağını belirten değer. |
| A Record | T | Bir hostname'i IPv4 adresine bağlayan DNS kaydı. |
| AAAA Record | T | Bir hostname'i IPv6 adresine bağlayan DNS kaydı. |
| CNAME Record | T | Bir hostname'i başka bir hostname'e yönlendiren DNS kaydı. |
| MX Record | T | Bir domainin e-posta sunucularını belirleyen DNS kaydı. |
| TXT Record | T | Doğrulama, SPF, DKIM ve çeşitli metin bilgileri için kullanılan DNS kaydı. |
| NS Record | T | Domain için yetkili nameserver'ları belirleyen DNS kaydı. |
| SRV Record | O | Belirli bir servisin hostname ve port bilgisini yayınlayan DNS kaydı. |
| HTTP | T | Web istemcileri ile sunucular arasında veri taşıyan uygulama protokolü. |
| HTTPS | T | HTTP iletişimini TLS ile şifreleyen güvenli protokol. |
| TLS | O | Ağ iletişiminin gizliliğini ve bütünlüğünü sağlayan şifreleme protokolü. |
| SSL Certificate | T | Domain ile sunucu kimliğini doğrulayan ve TLS bağlantısını sağlayan sertifika. |
| Certificate Authority | O | Dijital sertifikaları doğrulayıp imzalayan güvenilir kuruluş. |
| Handshake | O | İstemci ve sunucunun bağlantı parametreleriyle şifreleme anahtarlarında anlaşma süreci. |
| URL | T | Bir web kaynağının protokol, host, yol ve parametrelerden oluşan adresi. |
| Scheme | T | URL'nin http, https veya ftp gibi protokol bölümü. |
| Hostname | T | URL içindeki domain veya sunucu adı. |
| Path | T | Sunucu üzerindeki kaynak yolunu belirten URL bölümü. |
| Query String | T | URL sonunda anahtar-değer parametrelerini taşıyan bölüm. |
| Fragment | T | URL içinde # sonrası sayfa içi hedefi belirten ve sunucuya gönderilmeyen bölüm. |
| HTTP Request | T | İstemcinin sunucuya gönderdiği metot, header ve gerekirse body içeren mesaj. |
| HTTP Response | T | Sunucunun status code, header ve body ile verdiği cevap. |
| HTTP Method | T | İsteğin amacını belirten GET, POST, PUT, PATCH veya DELETE fiili. |
| GET | T | Bir kaynağı okumak veya listelemek için kullanılan HTTP metodu. |
| POST | T | Yeni veri veya işlem oluşturmak için kullanılan HTTP metodu. |
| PUT | O | Bir kaynağı bütünüyle oluşturmak veya değiştirmek için kullanılan metot. |
| PATCH | O | Bir kaynağın belirli alanlarını kısmi güncellemek için kullanılan metot. |
| DELETE | T | Bir kaynağı silmek için kullanılan HTTP metodu. |
| HEAD | O | GET yanıtının body olmadan yalnızca header bilgisini isteyen metot. |
| OPTIONS | O | Bir endpoint'in desteklediği yöntemleri ve CORS kabiliyetlerini sorgulayan metot. |
| HTTP Header | T | İstek ve yanıta ilişkin metadata taşıyan anahtar-değer alanı. |
| Request Body | T | POST, PUT veya PATCH isteğinde gönderilen veri gövdesi. |
| Response Body | T | Sunucunun istemciye döndürdüğü asıl içerik. |
| Content-Type | T | Body içeriğinin JSON, HTML veya görsel gibi medya türünü belirtir. |
| Accept Header | O | İstemcinin hangi yanıt formatlarını kabul ettiğini bildirir. |
| Authorization Header | O | Kimlik doğrulama token veya credential bilgisini taşır. |
| User-Agent | T | İsteği yapan tarayıcı veya istemci hakkında bilgi verir. |
| Referer | O | Kullanıcının hangi sayfadan geldiğini belirten HTTP header'ı. |
| Status Code | T | HTTP işleminin sonucunu üç haneli kodla ifade eder. |
| 2xx | T | Başarılı HTTP yanıtları sınıfı. |
| 3xx | T | Yönlendirme ve yeniden kullanım yanıtları sınıfı. |
| 4xx | T | İstemci kaynaklı hata yanıtları sınıfı. |
| 5xx | T | Sunucu kaynaklı hata yanıtları sınıfı. |
| 200 OK | T | İsteğin başarıyla tamamlandığını belirtir. |
| 201 Created | T | Yeni bir kaynağın başarıyla oluşturulduğunu belirtir. |
| 204 No Content | T | İşlem başarılı ancak döndürülecek body olmadığını belirtir. |
| 301 Redirect | T | Kaynağın kalıcı olarak başka URL'ye taşındığını belirtir. |
| 302 Redirect | T | Kaynağın geçici olarak başka URL'de olduğunu belirtir. |
| 304 Not Modified | O | İstemci cache'indeki kaynağın hâlâ güncel olduğunu belirtir. |
| 400 Bad Request | T | İstek yapısının veya verisinin geçersiz olduğunu belirtir. |
| 401 Unauthorized | T | Kimlik doğrulama gerektiğini veya başarısız olduğunu belirtir. |
| 403 Forbidden | T | Kimlik bilinse de kaynağa erişim izni olmadığını belirtir. |
| 404 Not Found | T | İstenen kaynağın bulunamadığını belirtir. |
| 409 Conflict | O | İsteğin mevcut kaynak durumu ile çakıştığını belirtir. |
| 422 Unprocessable Content | O | İstek biçimi doğru olsa da doğrulama nedeniyle işlenemediğini belirtir. |
| 429 Too Many Requests | O | İstemcinin hız limitini aştığını belirtir. |
| 500 Internal Server Error | T | Sunucuda beklenmeyen hata oluştuğunu belirtir. |
| 502 Bad Gateway | O | Proxy'nin arka sunucudan geçerli yanıt alamadığını belirtir. |
| 503 Service Unavailable | O | Servisin geçici olarak hizmet veremediğini belirtir. |
| 504 Gateway Timeout | O | Proxy'nin arka sunucudan zamanında yanıt alamadığını belirtir. |
| Latency | O | İstek ile yanıt arasındaki gecikme süresi. |
| Bandwidth | T | Birim zamanda taşınabilecek veri miktarı. |
| Throughput | O | Sistemin gerçek koşullarda işleyebildiği veri veya istek miktarı. |
| Round Trip Time | O | Paketin hedefe gidip geri dönme süresi. |
| Proxy | T | İstemci ile hedef sunucu arasında aracı olan sistem. |
| Reverse Proxy | O | İstekleri bir veya daha fazla arka sunucuya yönlendiren ön katman. |
| Load Balancer | O | Trafiği birden fazla sunucu veya instance arasında dağıtan sistem. |
| Keep-Alive | O | Aynı TCP bağlantısını birden fazla HTTP isteği için yeniden kullanma. |
| HTTP/2 | O | Multiplexing ve header sıkıştırma gibi özelliklerle HTTP'yi iyileştiren sürüm. |
| HTTP/3 | İ | QUIC ve UDP üzerinde çalışan modern HTTP sürümü. |
| CORS | O | Tarayıcının farklı origin'ler arasındaki istekler için uyguladığı güvenlik politikası. |
| Origin | O | Scheme, hostname ve port birleşimi. |
| Preflight Request | O | Tarayıcının bazı cross-origin isteklerden önce OPTIONS ile izin kontrolü yapması. |
| Cookie | T | Tarayıcıda domain bazlı saklanan ve isteklerle sunucuya gönderilebilen küçük veri. |
| Session | T | Kullanıcının birden fazla isteğini aynı oturum altında ilişkilendiren yapı. |
| Cache-Control | O | HTTP cache davranışını ve geçerlilik süresini belirleyen header. |
| ETag | O | Kaynak sürümünü temsil edip koşullu istek yapılmasını sağlayan tanımlayıcı. |
| Compression | O | HTTP body boyutunu gzip veya Brotli ile azaltma. |
| WebSocket | O | İstemci ve sunucu arasında sürekli, çift yönlü iletişim bağlantısı. |
| SSE | O | Sunucunun açık HTTP bağlantısı üzerinden istemciye tek yönlü olay göndermesi. |
| Webhook | O | Bir olay gerçekleştiğinde başka sisteme otomatik HTTP isteği gönderme mekanizması. |
Bölüm uygulamaları
Bu bölümü bitirmeden önce şunları deneyin veya açıklayın.
- Bir URL'yi scheme, hostname, port, path, query ve fragment parçalarına ayırın.
- Tarayıcı geliştirici araçlarında bir HTTP isteğinin request/response header ve body alanlarını inceleyin.
- DNS çözümlemesinden reverse proxy ve uygulama container'ına kadar örnek istek akışını çizin.