Her bir HTTP Header bir ad ve değer çiftinden oluşur, sonrasında ise iki nokta üst üste(:) ile ayrılır.
: Sunucu, burada verilen bilgilere göre uygun içeriği göndereceği istemci özelliklerini belirtir. Sunucular, farklı tarayıcılar ve cihazlar için içerik sunma veya uygun bir yanıt döndürme amacıyla bu bilgiyi kullanır.
tr
Accept-Language: tr-TR
İstemci ve sunucular arasındaki iletişimi önemli oranda etkileyen HTTP headers, internetin çalışmasını sağlayan temel yapı taşlarından biridir. Yaptığınız SEO analizlerinde ise önemli noktaları görmenizi sağlar. Web siteleri HTTP headers kullanarak istemciler ile iletişim kurar ve uygun yanıt verir. Bu yazı sayesinde HTTP Headers nedir, HTTP headers türleri nelerdir gibi birçok soruya cevap bulacak, detaylı bir şekilde inceleyebileceksiniz.
İstemci ve sunucular arasındaki iletişimi önemli oranda etkileyen HTTP headers, internetin çalışmasını sağlayan temel yapı taşlarından biridir. Yaptığınız SEO analizlerinde ise önemli noktaları görmenizi sağlar. Web siteleri HTTP headers kullanarak istemciler ile iletişim kurar ve uygun yanıt verir. Bu yazı sayesinde HTTP Headers nedir, HTTP headers türleri nelerdir gibi birçok soruya cevap bulacak, detaylı bir şekilde inceleyebileceksiniz.
SEO
HTTP headers, HTTP istekleri ve yanıtları sırasında aktarılan metinsel bilgilerdir. Web sunucusu ile bir istemci arasında veri aktarımı yapan kodlar olarak ifade edilir ve esas olarak sunucu ve istemci arasında iletişim için tasarlanmışlardır.
Her bir HTTP Header bir ad ve değer çiftinden oluşur, sonrasında ise iki nokta üst üste(:) ile ayrılır.
GET /sayfa HTTP/1.1
GET /sayfa HTTP/1.1
Host: www.ornek.com
Host: www.ornek.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Connection: keep-alive
Bu örneği inceleyecek olursanız Host, User-Agent ve Accept-Language olarak 3 farklı HTTP Header göreceksiniz.
Çeşitli bilgileri aktarmak ve işlemleri düzenlemek için oldukça önemli bir iletişim aracı olan HTTP Headers’ın başlıca görevleri şu şekildedir:
İstemci ve sunucu arasında bilgi aktarımı gerçekleşir. HTTP headers sayesinde kullanıcı tarayıcısının özelliklerini belirterek, sunucunun daha doğru içeriği sunmasına yardımcı olabilirsiniz.
Sunucunun, önbelleğe alması, yönlendirme yapması gibi işlemleri gerçekleştirmesini sağlar.
Kullanıcıya ait kimlik bilgilerinin sunucuya aktarımını yapar. HTTP header ile sunucu, istemciyi doğrular ve yetkilendirme işlemini gerçekleştirir.
Sunucunun göndermiş olduğu çerezleri tarayıcıya aktarır. Bu sayede tarayıcı, sonraki isteklerde sunucuyla etkileşimde bulunurken oturumu sürdürür.
3xx durum kodlarıyla birlikte kullanılır ve yönlendirme yapılacak yeni konumu belirtilmesini sağlar.
Tarayıcının sayfayı ne kadar süreyle önbelleğe alacağını belirler.
En sık karşılaşabileceğiniz HTTP header türleri şu şekildedir.
Accept
Content-Type
Authorization
User-Agent
Referer
Host
Cookie
HTTP Request Header (HTTP İstek başlıkları), istemci tarafından sunucuya gönderilen talepleri belirtir. HTTP Response Headers(HTTP Yanıt başlıkları) ise ise sunucudan istemciye gönderilen yanıtları ifade etmektedir..
HTTP Request Header (HTTP İstek Başlıkları)
Host
Örnek:
User
Örnek
Accept
Örnek
Accept-Language
Örnek
Authorization
Content-Type:
Örnek:
Content-Length:
Örnek:
Referer:
Örnek:
Cookie:
Örnek
Cache-Control:
Örnek:
If-Modified-Since:
Örnek
Origin:
Örnek:
Bu istek başlıkları sayesinde iletişimin daha verimli ve güvenli olur. Sunucular, belirtilmiş olan HTTP Header’larda verilen bilgileri kullanarak istemcilere uygun yanıtlar verir ve kullanıcı deneyimini geliştirebilir.
Web sunucusu, bir istemcinin (tarayıcının) gönderdiği isteği aldığında, isteği işleyerek bir yanıt döner. HTTP Response Headers (yanıt başlıkları) , sunucunun yanıtı hakkında bilgi verir ve istemciye gereken içeriği nasıl işleyeceğini belirtir. Yanıt başlıklarının bazı örnekleri şunlardır:
HTTP Durum Kodu (HTTP Status Code):
HTTP Durum Kodu (HTTP Status Code):
200 OK: İstek başarılı, içerik gönderiliyor.
404 Not Found: İstek yapılan kaynak bulunamadı.
500 Internal Server Error: Sunucuda bir iç hata meydana geldi.
Örnek
Content-Type:
Örneğin: text/html: HTML içeriği
application/json: JSON verisi
image/jpeg: JPEG formatında resim
Content-Length:
Örnek:
Cache-Control:
Örnek:
Location
Örnek
Set-Cookie:
Örnek
Date
Örnek:
Server: Sunucuya ait yazılımın adını ve sürümünü verir.
Örnek
Content-Encoding
Örnek
ETag:
Örnek
Expires
Örnek
Last-Modified:
Örnek
Burada belirtilen HTTP headers, sunucudan gelen yanıtların yönetimi ve işlenmesinde önemli bir rol oynarlar. İstemci (tarayıcı) bu başlıkları kullanarak yanıta ve içeriğe uygun şekilde tepki verir.
Örnek HTTP Header ve Açıklamaları
GET /hedef-sayfa HTTP/1.1
GET /hedef-sayfa HTTP/1.1
Host: www.ornekweb.com
Host: www.ornekweb.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Cookie: kullanicilar=x kişisi; dil=tr
Cookie: kullanicilar=x kişisi; dil=tr
Kullanılan
HTTP/1.1 200 OK Date: Sat, 30 Jul 2023 12:00:00 GMT
HTTP/1.1 200 OK Date: Sat, 30 Jul 2023 12:00:00 GMT
Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
Content-Length: 255
Content-Length: 255
Set-Cookie: dil=tr; expires=Sat, 06 Aug 2023 12:00:00 GMT; path=/; HttpOnly
Set-Cookie: dil=tr; expires=Sat, 06 Aug 2023 12:00:00 GMT; path=/; HttpOnly
Server: Apache
Server: Apache
Cache-Control: max-age=3600
Cache-Control: max-age=3600
Bu örnekte ise sunucunun 200 durum kodu ile başarılı bir şekilde yanıt verdiğini; text/html olarak belirtilen content-type HTTP header ile HTML içerikleri kabul ettiğini; önbellekteki içeriğin geçerliliğinin Sat, 06 Aug 2023 12:00:00 tarihinde sona erdiğini, cache-control HTTP header ile ise içeriğin 3600 saniye (1 saat) boyunca önbelleğe alınabileceğini belirtmek istediğini görebilirsiniz.
HTTP Header (HTTP Başlığı) Nedir?
HTTP Headers, istemli ile sunucu arasında HTTP Request Headers (HTTP İstek Başlıkları) ve HTTP Response Headers (HTTP Yanıt Başlıkları) olarak isimlendirilen başlıklar ile bilgi iletilmesini sağlayan kodlardır.
HTTP Request Header Nedir?
Türkçesi HTTP istek başlıkları olan HTTP request headers, istemcinin sunucuya gönderdiği talebi, yapmak istediği işlemi belirttiği başlıklardır. Sunucunun isteği doğru bir şekilde anlaması için oldukça büyük önem taşırlar.
HTTP Response Headers Nedir?
Türkçesi HTTP yanıt başlıkları olan HTTP response headers, sunucunun istemciden aldığı istek başlıklarına verilen yanıt başlıklarıdır.
HTTP Headers Nedir?
: Bu HTTP Header, hedef sunucunun adını veya IP adresini belirtir.
Host: www.ornekweb.com
–
:
: Tarayıcının kabul edebileceği içerik türlerini belirtir. Örneğin, “text/html” HTML içerik türünü kabul ettiğini gösterir.
:
: İstemcinin dil tercihini belirtmek için kullanılır. Sunucu, içeriği bu tercihlere göre sunar. Bu HTTP header sayesinde birden fazla dil tercihiniz varsa virgülle ayırarak belirtebilirsiniz.
:
: Kimlik doğrulama için kullanılır ve yetkilendirme bilgilerini içerir. Genellikle, kullanıcı adı ve şifre gibi kimlik doğrulama mekanizmalarında kullanılır.
İçeriğin türünü belirtir.
Content-Type: text/html; charset=utf-8
İstekteki içeriğin uzunluğunu belirtir. Bu uzunluğu bayt cinsinden verir. Sunucu, isteği işlerken bu bilgiyi kullanır.
Content-Length: 1024
İsteğin nereden geldiğini belirtir. Özellikle bir bağlantıya tıkladığında, yeni sayfada hangi bağlantıdan geldiğini belirlemek için kullanılır.
Referer: https://www.google.com/search?q=ornek+arama
Tarayıcı, sunucuya daha önce gönderilen çerezleri bu başlıkla gönderir. Sunucu, kullanıcı oturumlarını yönetmek ve özelleştirilmiş deneyim sunmak için bu bilgiyi kullanır.
:
Önbellekleme davranışını belirler. Örneğin, “no-cache” önbelleği kullanmayı engelleyerek, sunucudan her zaman yeni içerik alınmasını sağlar.
Cache-Control: max-age=3600
Eğer belirtilen tarihten sonra içerik değişmediyse, sunucu içeriği göndermeyebilir. Bu HTTP header sayesinde, içeriğin güncel olup olmadığını kontrol eder.
:
Cross-Origin Resource Sharing (CORS) politikaları için köken (origin) bilgisini belirtir. Sunucu, bu bilgiyi kullanarak istemciye veri paylaşımını kontrol eder.
Origin: https://www.ornekuygulama.com
Sunucunun işlemin durumunu belirtmek için gönderdiği üç haneli bir kod. Örneğin:
:
Yanıtın içeriğinin türünü belirtir.
Yanıtın içeriğinin uzunluğunu bayt cinsinden belirtir.
Content-Length: 1024
Tarayıcıda veya önbellekleyici aracılarda içeriğin nasıl önbellekleneceğini yönlendirir.
Cache-Control: no-cache, no-store, must-revalidate
: Yönlendirme durumunda (örneğin 301 veya 302 durum kodlarıyla) kullanılması gereken yeni kaynağın URLini belirtir.
:
Bu HTTP header sayesinde tarayıcıya çerez (cookie) göndermek için kullanılır. Sunucu, tarayıcıda saklanacak çerez bilgilerini bu başlıkla gönderir.
:
: Oluşturulan yanıtın tarih ve saat bilgisini verir.
Date: Sun, 16 Jul 2023 18:00:00 GMT
:
: Yanıtın içeriğinin nasıl kodlandığını belirtir. Örneğin, “gzip” sıkıştırma ile gönderilmiş ise aşağıda verilmiş HTTP Header kullanılır.
:
İçeriğin bir etiketini (tag) belirtir. Sunucu, bu etiketi sonraki isteklerde “If-None-Match” başlığında kullanarak içeriğin değişip değişmediğini kontrol edebilir.
:
: Önbellekteki içeriğin geçerliliğinin sona ermiş ise buna ait tarih ve saat bilgisini verir.
:
İçeriğe ait son güncellenme tarihini belirtir.
:
Accept HTTP Header’da ‘text/html
HTTP headers, HTTP istekleri ve yanıtları sırasında aktarılan metinsel bilgilerdir. Web sunucusu ile bir istemci arasında veri aktarımı yapan kodlar olarak ifade edilir ve esas olarak sunucu ve istemci arasında iletişim için tasarlanmışlardır.
Agent
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0
Accept: text/html
Accept-Language: tr-TR
Cookie: kullanicilar=kisi; dil=
If-Modified-Since: Sat, 30 Jul 2023 10:30:00 GMT
HTTP/1.1 200 OK
Location: https://www.example.com/new-page
Set-Cookie: session_id=abc123; Expires=Sat, 24 Jul 2023 12:00:00 GMT; Path=/
Server: Apache/2.4.38 (Unix)
Content-Encoding: gzip
ETag: “abc123”
Expires: Thu, 01 Aug 2023 00:00:00 GMT
Last-Modified: Wed, 12 Jul 2023 15:30:00 GMT
’ belirtilerek tarayıcının HTML içeriği kabul ettiğini,
GET /sayfa HTTP/1.1
HTTP headerını kullanarak ise Türkçe dil tercihi yaptığını, son olarak ise
Host: www.ornek.com
Cookie: kullanicilar=x kişisi; dil=tr
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
HTTP Headerı ile önceden sunucudan alınmış olan “kullanıcılar” ve “dil” adlı çerezleri sunucuya tekrar gönderdiği çıkarımını yapabilirsiniz.
Accept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Bu örneği inceleyecek olursanız Host, User-Agent ve Accept-Language olarak 3 farklı HTTP Header göreceksiniz.
HTTP Headers ve Görevleri
Çeşitli bilgileri aktarmak ve işlemleri düzenlemek için oldukça önemli bir iletişim aracı olan HTTP Headers’ın başlıca görevleri şu şekildedir:
- İstemci ve sunucu arasında bilgi aktarımı gerçekleşir. HTTP headers sayesinde kullanıcı tarayıcısının özelliklerini belirterek, sunucunun daha doğru içeriği sunmasına yardımcı olabilirsiniz.
- Sunucunun, önbelleğe alması, yönlendirme yapması gibi işlemleri gerçekleştirmesini sağlar.
- Kullanıcıya ait kimlik bilgilerinin sunucuya aktarımını yapar. HTTP header ile sunucu, istemciyi doğrular ve yetkilendirme işlemini gerçekleştirir.
- Sunucunun göndermiş olduğu çerezleri tarayıcıya aktarır. Bu sayede tarayıcı, sonraki isteklerde sunucuyla etkileşimde bulunurken oturumu sürdürür.
- 3xx durum kodlarıyla birlikte kullanılır ve yönlendirme yapılacak yeni konumu belirtilmesini sağlar.
- Tarayıcının sayfayı ne kadar süreyle önbelleğe alacağını belirler.
En Yaygın 7 HTTP Headers
En sık karşılaşabileceğiniz HTTP header türleri şu şekildedir.