---
title: "HTTP Başlıkları (Headers) Nedir?"
description: "HTTP başlıkları, her istek ve yanıtta gövdeden önce giden ad: değer satırlarıdır. Ne işe yararlar, hangileri yaygındır, Chrome ve curl ile nasıl görülürler?"
url: https://proxynet.io/tr/blog/what-are-http-headers
date: 2026-11-15
author: "Acar Diveroli"
category: "Proxy 101, Nasıl Yapılır"
lang: tr
---

# HTTP Başlıkları (Headers) Nedir?

Bir internet mağazasına giriyorsunuz: site Türkçe karşınıza çıkıyor, oturumunuz açık kalıyor ve sayfa önbellekten hızla yükleniyor. Bunların hiçbirine sayfanın kendisi karar vermedi. Sayfanın ilk satırı gelmeden önce tarayıcınız ile sunucu, isteği kimin yaptığını, neyi kabul ettiğini ve karşılığında ne geleceğini anlatan bir düzine kısa satırı birbirine gönderir. Bu satırlar HTTP başlıklarıdır (HTTP headers).

Bu yazıda `curl` ile kaydettiğimiz gerçek bir isteği ve yanıtı, en sık karşılaşacağınız başlıkları, başlık adlarının büyük/küçük harfe duyarlı olup olmadığını ve başlıkları Chrome'da ya da curl ile nasıl okuyacağınızı anlatıyoruz. Yazının sonunda site sahipleri için güvenlik başlıklarını, bir proxy'nin eklediği ya da okuduğu başlıkları ve sık sorulan altı soruyu bulacaksınız.

> **Not: Kısa cevap**
>
> HTTP başlıkları, her HTTP isteğinin ve yanıtının başında, gövdeden önce gönderilen `Ad: değer` biçimindeki satırlardır. İstek başlıkları sunucuya hangi siteyi istediğinizi (`Host`), hangi tarayıcıyı kullandığınızı (`User-Agent`), hangi dosya biçimlerini ve dilleri kabul ettiğinizi söyler; çerezlerinizi ve giriş token'larınızı da taşır. Yanıt başlıkları tarayıcıya gelen dosyanın türünü (`Content-Type`), ne kadar süre önbellekte tutulabileceğini, hangi çerezlerin saklanacağını ve sonra hangi adrese gidileceğini bildirir. Başlık adları büyük/küçük harfe duyarlı değildir. Başlıkları Chrome'da Geliştirici Araçları > Ağ > Başlıklar altında ya da `curl -I` ve `curl -v` komutlarıyla görebilirsiniz.

## HTTP başlıkları nedir?

HTTP başlıkları, bir isteğin ya da yanıtın başında, içeriğin kendisinden önce gönderilen ve her biri bir ad taşıyan ek bilgilerdir. HTTP'yi tanımlayan standart RFC 9110, içerikten önce gelen bu alanlara "header fields", kısaca "headers" (başlıklar) der. Her biri bir ad, iki nokta üst üste ve bir değerden oluşan tek bir satırdır: `Accept-Language: tr-TR` gibi.

Her HTTP mesajı aynı biçimdedir: bir ilk satır, başlıklar, bir boş satır ve varsa gövde. İstekte ilk satır yöntemi ve yolu (`GET /`), yanıtta durum kodunu (`200 OK`) verir. Gövde sayfanın, resmin ya da verinin kendisidir; başlıklar onu ve iletişimin iki tarafını anlatır.

İstek başlıkları tarayıcınızdan ya da uygulamanızdan sunucuya gider, yanıt başlıkları geri gelir. MDN'in İngilizce [HTTP başlıkları başvuru sayfası](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers), bütün standart başlıkları gruplara ayırarak listeler. `X-` ile başlayan adlar, standartta yer almayan ve geliştiricilerin kendi eklediği uzantılardır; 2012'de bu adlandırma alışkanlığından vazgeçilmesi önerildi, ama bu tür adların birçoğu hâlâ kullanılıyor.

## Bir istekte ve yanıtta başlıklar nasıl işler?

Bir sayfanın yüklenmesi bir istek ve bir yanıttan oluşur; ikisinin de kendi başlıkları vardır:

1. **Tarayıcınız sunucuya bağlanır.** `https://` ile başlayan adreslerde önce şifrelemeyi kurar.
1. **İstek satırını ve istek başlıklarını gönderir:** `GET /`, ardından `Host`, `User-Agent`, `Accept`, `Accept-Language` ve o site için kayıtlı çerezler.
1. **Boş bir satır başlıkları bitirir.** Bir form ya da API çağrısı bunun ardından bir gövde ekler.
1. **Sunucu başlıkları okur:** `Host` siteyi, `Accept-Language` dili, `Cookie` oturum açmış kullanıcıyı belirler.
1. **Durum satırı ve yanıt başlıklarıyla cevap verir:** `200 OK` ve `Content-Type` gibi; ardından boş satır ve gövde gelir.
1. **Tarayıcı bunlara göre davranır:** sayfayı gösterir, çerezleri saklar, bir kopyayı önbelleğe alır ya da yönlendirmeyi izler.

## Gerçek bir HTTP isteği ve yanıtı neye benzer?

Aşağıda `curl -v` ile example.com'a gönderdiğimiz bir istek ve gelen yanıt var. curl, web adreslerindeki içeriği komut satırından indiren bir araçtır; Windows 10 ve 11'de, macOS'ta ve çoğu Linux sisteminde hazır gelir. `-v` (verbose, ayrıntılı) seçeneği iki tarafı da yazdırır. Komutu 15 Kasım 2026'da Windows 11'de çalıştırdık ve çıktıda yalnız başlıkları bıraktık:

```text
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/8.22.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Sun, 15 Nov 2026 15:40:29 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Server: cloudflare
< last-modified: Thu, 12 Nov 2026 21:56:22 GMT
< allow: GET, HEAD
< Accept-Ranges: bytes
< Age: 6679
< cf-cache-status: HIT
< alt-svc: h3=":443"; ma=86400
```

`>` ile başlayan satırlar curl'ün gönderdikleri, `<` ile başlayanlar sunucunun yanıtıdır; tek başına duran `>`, istek başlıklarını bitiren boş satırdır. curl üç istek başlığı gönderir, bir tarayıcı ise ondan fazla.

- **`Content-Type: text/html; charset=utf-8`:** gövde, UTF-8 metin olarak yazılmış bir web sayfasıdır.
- **`Age: 6679`:** sitenin önündeki içerik dağıtım ağı (CDN) bu kopyayı 6.679 saniyedir, yani yaklaşık 1 saat 51 dakikadır tutuyor.
- **`cf-cache-status: HIT`:** standart bir başlık değil; o ağın, kopyanın kendi önbelleğinden geldiğini bildiren notu.
- **`alt-svc: h3=":443"`:** site 443 numaralı portta HTTP/3'ü de destekliyor.

`Content-Type` ile `last-modified` satırlarına dikkat edin: aynı yanıtta adlar iki farklı biçimde yazılmış.

## HTTP başlıkları büyük/küçük harfe duyarlı mı?

Hayır, başlık adları büyük/küçük harfe duyarlı değildir: `Content-Type`, `content-type` ve `CONTENT-TYPE` aynı başlıktır. [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-field-names) bunu tek cümleyle söyler: "Field names are case-insensitive." Aynı sayfayı düz `http://` üzerinden istediğimizde sunucu `Last-Modified` ve `Allow` adlarını bu kez büyük harfle başlattı.

Değerlerde kural her başlığa göre değişir. `text/html` ile `TEXT/HTML` aynı dosya türünü anlatır, ama bir çerez değeri ya da giriş token'ı sunucunun gönderdiği hâliyle, harfi harfine geri gitmelidir.

Protokolün yeni sürümleri olan HTTP/2 ve HTTP/3, adların küçük harfle yazılmasını zorunlu kılar; Chrome Geliştirici Araçları'nın `content-type` göstermesinin sebebi budur. Testimizde Chromium example.com'u HTTP/3 ile açtı ve isteğini `:method`, `:path`, `:scheme` ve `:authority` satırlarıyla başlattı. Bu sözde başlıklar (pseudo-header), HTTP/1.1'de ilk satırda ve `Host` başlığında giden bilgiyi taşır.

Kendi kodunuzda başlık adlarını büyük/küçük harf ayrımı yapmadan karşılaştırın. JavaScript'in `Headers` nesnesi ve Python'un requests kütüphanesi bunu zaten yapar; düz bir sözlük (dictionary) yapmaz.

## En yaygın istek başlıkları hangileri?

İstek başlıkları isteği kimin yaptığını ve neyi kabul ettiğini anlatır:

| Başlık | Sunucuya ne söyler? | Örnek değer |
|---|---|---|
| Host | Hangi siteyi istediğinizi | `example.com` |
| User-Agent | Tarayıcıyı ya da uygulamayı ve sürümünü | `curl/8.22.0` |
| Accept | Kullanabildiğiniz dosya türlerini | `text/html` |
| Accept-Language | Tercih ettiğiniz dilleri | `tr-TR,tr;q=0.9` |
| Cookie | Bu site için kayıtlı çerezleri | `theme=dark` |
| Authorization | Site ya da API için giriş bilgisini | `Bearer <token>` |
| Referer | Geldiğiniz sayfayı | `https://example.com/` |

**Host**, tek bir sunucunun ve tek bir IP adresinin birçok siteyi taşımasını sağlar: sunucu bu başlıktaki adı okur ve doğru siteyi seçer. **Accept-Language** sayesinde site, siz bir dil seçmeden önce hangi dilde açılacağına karar verir. `q` sayıları 0 ile 1 arasındaki ağırlıklardır: `tr-TR,tr;q=0.9` önce Türkiye Türkçesi, sonra herhangi bir Türkçe demektir.

**Cookie**, sitenin daha önce `Set-Cookie` ile sakladığı küçük değerleri, örneğin oturum kimliğini geri taşır. Çerezin nasıl kaydedilip geri gönderildiğini adım adım [Çerez (Cookie) Nedir, Ne İşe Yarar?](/tr/blog/what-are-cookies) yazısında anlattık.

**Authorization**, sitenin kendisi için kimlik bilgisi taşır ve çoğu zaman bir 401 Unauthorized yanıtından sonra gelir; standart, proxy'nin bu başlığı değiştirmesini yasaklar. Standartta da yanlış yazılan **Referer**, sizi buraya getiren bağlantının bulunduğu sayfayı bildirir; başka bir siteye giden bağlantıda tarayıcılar varsayılan olarak yalnız kaynağı (origin), yani `https://example.com/` gibi site adresini gönderir. Chrome kendi başlıklarını da ekler; tarayıcı markalarını ve sürümlerini kısa bir liste hâlinde veren `sec-ch-ua` bunlardan biridir.

## En yaygın yanıt başlıkları hangileri?

Yanıt başlıkları tarayıcıya neyin geldiğini ve onunla ne yapacağını söyler:

| Başlık | Tarayıcıya ne söyler? | Örnek değer |
|---|---|---|
| Content-Type | Gövdedeki dosyanın türünü | `application/json` |
| Cache-Control | Önbellekte tutulup tutulmayacağını, ne kadar süreyle | `max-age=3600` |
| Set-Cookie | Saklanacak bir çerezi | `theme=dark; Secure` |
| Location | Gidilecek sonraki adresi | `/login` |
| Retry-After | Ne kadar bekleneceğini | `120` |
| Strict-Transport-Security | Bundan sonra yalnız HTTPS kullanılmasını | `max-age=31536000` |

**Content-Type**, tarayıcının gövdeyle ne yapacağını belirler: `text/html` sayfa olarak gösterilir, `image/png` resim olarak açılır, `application/json` bir betiğe verilir. Bir sayfanın bazen ham kod olarak görünmesinin sebebi yanlış bir değerdir. `Content-Disposition: attachment` ise tarayıcıdan dosyayı göstermek yerine indirmesini ister.

**Cache-Control** önbellek kurallarını belirler: `max-age=3600` kopyanın bir saat boyunca yeniden kullanılmasına izin verir, `no-store` kopya tutulmasını yasaklar. **Set-Cookie** tek yanıtta birçok kez, her çerez için bir satır olarak gelebilir. **Location** yönlendirmelerle (3xx kodları) gelir ve yeni adresi verir.

**Retry-After**, 503 Service Unavailable ve 429 Too Many Requests yanıtlarıyla gelir ve ne kadar beklenmesi gerektiğini saniye ya da tarih olarak söyler. `Retry-After: 120` iki dakika demektir; kurallara uyan bir istemci o kadar bekler.

## HTTP başlıkları Chrome'da nasıl görülür?

Chrome her isteğin bütün başlıklarını Geliştirici Araçları'nda (DevTools), Ağ panelinde gösterir. Türkçe arayüzdeki adlarla adımlar şöyle:

1. Sayfayı açın ve **F12** tuşuna ya da Windows'ta **Ctrl + Shift + I** tuşlarına basın (Mac'te **Cmd + Option + I**). Sayfaya sağ tıklayıp **İncele**'yi seçmek de aynı işi görür.
1. **Ağ** sekmesine tıklayın. Geliştirici Araçları yalnız açıkken kayıt tutar, bu yüzden sayfayı yenileyin.
1. **Ad** sütununda ilk satıra, yani sayfanın kendisine tıklayın.
1. **Başlıklar** sekmesini açın. **Genel** bölümü adresi, yöntemi ve durum kodunu gösterir; altında **Yanıt başlıkları** ve Türkçe arayüzde bu adla geçen **İstek üst bilgileri** bölümleri gelir.
1. Satırları geldikleri hâliyle ve sırasıyla görmek için bir bölümün yanındaki **İşlenmemiş** kutusunu işaretleyin.

"Hazır başlıklar gösteriliyor. Bütün başlıkları görmek için önbelleği devre dışı bırakın." uyarısını görürseniz dosya büyük olasılıkla tarayıcının önbelleğinden gelmiştir; panelin üstündeki **Önbelleği devre dışı bırak** kutusunu işaretleyip sayfayı yenileyin. Chrome'un [Ağ paneli başvuru belgesi](https://developer.chrome.com/docs/devtools/network/reference?hl=tr#headers), bir başlığı istek listesinde sütun olarak göstermek gibi diğer seçenekleri anlatır.

Bir isteği tarayıcının dışında tekrarlamak için üzerine sağ tıklayın ve Windows'ta **Kopyala** > **cURL (cmd) olarak kopyala**'yı, Mac'te **cURL olarak kopyala**'yı seçin. Kopyalanan komut çerezlerinizi ve varsa giriş başlığınızı içerir; onu hiçbir zaman herkese açık bir foruma ya da sohbete yapıştırmayın.

## HTTP başlıkları curl ile nasıl görülür?

curl başlıkları komut satırından gösterir; kendi sitenizi hızlıca kontrol etmek için kullanışlıdır. Komutları Komut İstemi'nde çalıştırın; Windows PowerShell'de ise `curl` yerine `curl.exe` yazın, çünkü orada `curl` başka bir komutun takma adıdır.

```cmd
curl -I https://example.com
```

`-I`, `HEAD` isteğiyle yalnız yanıt başlıklarını ister; bizim denememizde yukarıdakiyle aynı yanıt başlıkları çıktı. İki seçenek daha:

- **`curl -v https://example.com`** istek başlıklarını, yanıt başlıklarını ve bağlantı ayrıntılarını gösterir.
- **`curl -I -H "Accept-Language: de" https://example.com`** isteğe kendi seçtiğiniz bir başlığı ekler; örneğin sitenizin Almanca bir tarayıcıya nasıl cevap verdiğini denemek için.

Windows ile gelen curl HTTP/1.1 kullanır (ayrıntılı çıktısında `ALPN: curl offers http/1.1` yazar); bu yüzden adları sunucu nasıl yazdıysa öyle görürsünüz. HTTP/2 desteğiyle derlenmiş bir curl ise HTTP/2 destekleyen sitelerde adları küçük harfle yazdırır.

## Bir site hangi güvenlik başlıklarını göndermeli?

Güvenlik başlıkları, tarayıcının siteniz için ek korumaları açmasını sağlayan yanıt başlıklarıdır. Bunları web sunucusunda, içerik dağıtım ağında ya da uygulamanın kendisinde ayarlarsınız:

- **Strict-Transport-Security (HSTS):** siteyi `max-age` saniye boyunca yalnız HTTPS ile açtırır. Tarayıcılar düz HTTP üzerinden gelen bu başlığı yok sayar. `includeSubDomains` yönergesini ancak bütün alt alan adlarınız HTTPS ile çalışıyorsa ekleyin.
- **Content-Security-Policy (CSP):** sayfanın betikleri, stilleri ve resimleri nereden yükleyebileceğini listeler; böylece sayfaya dışarıdan sokulmuş bir betiğin yapabileceklerini sınırlar.
- **X-Content-Type-Options: nosniff:** tarayıcı dosya türünü tahmin etmez, `Content-Type`'a güvenir.
- **X-Frame-Options** ya da CSP'deki `frame-ancestors`: başka sitelerin sayfanızı bir çerçeve içinde gösterip gösteremeyeceğini belirler. Ziyaretçiyi görünmeyen bir sayfaya tıklatma hilesi olan clickjacking'e karşı korur.
- **Referrer-Policy:** ziyaretçi sitenizden ayrılırken sayfa adresinizin ne kadarının `Referer`'a yazılacağını belirler.

Sitenizi `curl -I` ile ya da Geliştirici Araçları'ndaki **Yanıt başlıkları** bölümünden kontrol edin. Oturum çerezlerinde `Set-Cookie` içindeki `Secure`, `HttpOnly` ve `SameSite` işaretleri de en az bunlar kadar önemlidir.

## Proxy hangi başlıkları ekler ya da okur?

Proxy'nin kendine ait birkaç başlığı vardır: bazılarını sizden okur, bazılarını isteğinizi iletmeden önce ekleyebilir.

- **`Proxy-Authorization`**, `user:pass` gibi proxy giriş bilgilerinizi proxy'ye taşır; proxy bu başlığı kendisi kullanır, siteye iletmez.
- **`Proxy-Authenticate`**, giriş bilgisi eksik ya da yanlış olduğunda proxy'nin gönderdiği `407 Proxy Authentication Required` yanıtıyla gelir.
- **`Via`**, mesajın bir aracıdan geçtiğini kaydeder; HTTP standardı proxy'nin bu başlığı eklemesi gerektiğini söyler.
- **`X-Forwarded-For`** ve standart karşılığı **`Forwarded`**, istemcinin asıl IP adresini taşır. `Forwarded` başlığını tanımlayan [RFC 7239](https://www.rfc-editor.org/rfc/rfc7239), anonimlik sağlamak amacıyla çalışan bir proxy'nin bu başlığı kullanmayacağını söyler.

Proxy'leri şeffaf, anonim ve elite diye ayıran şey, `Via` ya da `X-Forwarded-For` ekleyip eklemedikleridir. [Şeffaf, Anonim ve Elite Proxy Farkları Nedir?](/tr/blog/anonymous-proxy-levels) yazısı aynı isteğin üç seviyede hedefe nasıl ulaştığını gösteriyor.

HTTPS'te bunların çoğu ortadan kalkar. `https://` ile başlayan bir adres için uygulamanız proxy'den `CONNECT` isteğiyle bir tünel açmasını ister; proxy bundan sonra şifreli baytları okumadan iletir. curl'ü kendi bilgisayarımızdaki küçük bir test proxy'si üzerinden, örnek giriş bilgisi `user:pass` ile çalıştırdık:

```text
> CONNECT example.com:443 HTTP/1.1
> Host: example.com:443
> Proxy-Authorization: Basic dXNlcjpwYXNz
> User-Agent: curl/8.22.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
> GET / HTTP/1.1
> Host: example.com
> User-Agent: curl/8.22.0
> Accept: */*
```

Proxy'nin günlüğüne yalnız ilk blok kaydedildi. `GET` isteği ve başlıkları şifreli tünelin içinden geçti; proxy onları ne okuyabildi ne de onlara satır ekleyebildi. `dXNlcjpwYXNz` ise yalnızca `user:pass`'in Base64 ile kodlanmış hâlidir: bu bir kodlamadır, şifreleme değildir.

Bir [HTTPS Proxy](https://proxynet.io/tr/https-proxy) trafiğinizi böyle taşır: Proxynet'in ağ geçidi tüneli şifresini çözmeden aktarır, bu yüzden bizim verdiğimiz bir sertifikayı yüklemeniz gerekmez. Proxy, sitenin gördüğü IP adresini değiştirir; bu, kendi başlıklarınızı yeniden yazmak için bir sebep değildir. `User-Agent`, `Referer` ya da `X-Forwarded-For` başlıklarını başka bir tarayıcı ya da başka bir ziyaretçi gibi görünmek için değiştirmeyin; çalıştırdığınız betikler, aracınızın adını taşıyan dürüst bir `User-Agent` göndermelidir.

## HTTP başlıklarıyla nerede karşılaşırsınız?

- **Dil sürümleri:** site, size ilk göstereceği sayfayı seçmek için `Accept-Language` başlığını okur.
- **Oturum açma:** `Cookie` başlığı oturumunuzu her istekte taşır.
- **API'ler:** `Authorization` içinde bir token, gövde için `Content-Type: application/json`.
- **Önbellek:** `Cache-Control` ve `Age`, saklanan kopyanın hâlâ taze olup olmadığına karar verir.
- **İndirmeler:** `Content-Disposition`, dosyanın tarayıcıda açılacağını ya da diske kaydedileceğini belirler.

## Sık yapılan hatalar

- **Kodda başlık adlarını büyük/küçük harfe duyarlı okumak.** Düz bir sözlükte `headers["Content-Type"]`, HTTP/2 sunucusundan gelen `content-type` başlığını bulamaz.
- **"cURL olarak kopyala" komutunu paylaşmak.** Komut çerezlerinizi taşır; onu eline geçiren herkes sizin adınıza işlem yapabilir.
- **İnternetten gelen `X-Forwarded-For` başlığına güvenmek.** İstemci istediği değeri gönderebilir; yalnız kendi proxy'nizin ya da trafiği sunucularınıza dağıtan yük dengeleyicinizin eklediği kayıtlar güvenilirdir.
- **HSTS'yi `includeSubDomains` ile erken açmak.** HTTPS'i olmayan bir alt alan adı, başlığı görmüş ziyaretçiler için açılmaz hâle gelir.
- **Çerezlerin birikmesine izin vermek.** Büyük çerezler isteği sunucunun başlık sınırının üstüne çıkarır ve site 400 ya da 431 döner.

## Karar rehberi

| Ne istiyorsunuz? | Nereye bakmalı, ne kullanmalı? |
|---|---|
| Tarayıcınızın ne gönderdiğini görmek | Geliştirici Araçları > Ağ > Başlıklar |
| Bir sitenin yanıtını hızlıca kontrol etmek | `curl -I` |
| Bir yönlendirmenin nereye gittiğini bulmak | Yanıttaki `Location` |
| Sayfanın neden başka dilde açıldığını anlamak | İstekteki `Accept-Language` |
| Kendi sitenizi sağlamlaştırmak | HSTS, CSP, nosniff, Referrer-Policy |
| Bir proxy'ye giriş yapmak | Uygulamanızın gönderdiği `Proxy-Authorization` |

## Sıkça sorulan sorular

### User-Agent başlığı nedir?

İsteği yapan tarayıcının ya da programın adını, sürümünü ve genellikle işletim sistemini bildiren istek başlığıdır; curl `curl/8.22.0` gönderir. Siteler onu istatistik tutmak ve sayfayı tarayıcıların kendine özgü sorunlarına göre uyarlamak için kullanır. Kendi User-Agent'ınızı nasıl okuyacağınızı [User-Agent Nedir, Nasıl Öğrenilir ve Değiştirilir?](/tr/blog/what-is-user-agent) yazısında anlattık.

### X-Forwarded-For ne demek?

Bir proxy'nin ya da yük dengeleyicinin, isteği kendisine gönderen istemcinin IP adresini yazdığı başlıktır; böylece arkadaki sunucu ziyaretçinin adresini görür. Hiçbir zaman resmî bir standart olmadı; standart karşılığı `Forwarded` (RFC 7239) başlığıdır. Herkes bu başlığı gönderebildiği için sunucu yalnız kendi proxy'sinin eklediği kayıtlara güvenmelidir.

### HTTPS'te HTTP başlıkları şifrelenir mi?

Evet. HTTPS'te başlıklar da gövdeyle birlikte şifreli olarak gider; yoldaki ağlar ve proxy'ler onları okuyamaz. Sunucunun IP adresi görünür kalır; alan adı da çoğu durumda görünür, çünkü şifreli bağlantı kurulurken gönderilir.

### API'de HTTP başlıkları nedir?

Aynı başlıklardır, yalnızca daha bilinçli kullanılır. Bir API çağrısı genellikle `Authorization` içinde bir anahtar ya da token gönderir (bazı API'ler `X-API-Key` gibi kendi başlıklarını kullanır), gövdeyi `Content-Type: application/json` ile tanımlar ve `Accept` ile JSON ister. Çok fazla istek gönderildiğinde cevap çoğu zaman `Retry-After` taşıyan bir 429 olur.

### "HTTP header is larger than 8192 bytes" ne demek?

Bir isteğin ya da yanıtın, onu işleyen yazılımın kabul ettiğinden fazla başlık verisi taşıdığı anlamına gelir. Bu ifade Java ağ kütüphanesi Netty'nin mesajıdır ve Netty'nin varsayılan sınırı 8.192 bayttır; mesajda görülebilen 10.240 gibi başka sayılar, ayarlarla değiştirilmiş sınırlardır. HTTP'nin kendisi bir üst sınır koymaz. Ziyaretçiyseniz o sitenin çerezlerini silin; geliştiriciyseniz çerezleri ya da token'ları küçültün veya sınırı yükseltin.

### Referer başlığı neden yanlış yazılmış?

Çünkü yanlış yazılmış ad 1996 tarihli HTTP/1.0 belirtiminde zaten yer alıyordu ve yazılımlar her yerde başlığı bu adla okuyor. Bugünkü standart `Referer` adını bir "[sic]" notuyla korur; daha yeni olan `Referrer-Policy` başlığı ise doğru yazılmıştır.

## Özet

HTTP başlıkları, her isteğin ve yanıtın başındaki `Ad: değer` satırlarıdır. İstek başlıkları siteyi, tarayıcıyı, dilleri, çerezleri ve kimlik bilgilerini bildirir; yanıt başlıkları gövdenin ne olduğunu, ne kadar süre önbellekte tutulacağını, hangi çerezlerin saklanacağını ve sıradaki adresi söyler. Adlar büyük/küçük harfe duyarlı değildir; HTTP/2 ve HTTP/3 onları küçük harfle yazar. Başlıkları Geliştirici Araçları'nda ya da curl ile okuyun, kendi sitenizden de güvenlik başlıkları gönderin. HTTPS'te proxy yalnız site adını ve proxy giriş bilgilerinizi taşıyan kısa `CONNECT` isteğini görür; kendi trafiğinizi bir proxy üzerinden yönlendirmek isterseniz [proxy hizmetlerimizden](/tr/proxy) başlayabilirsiniz.
