Sempeak Logo
Yükleniyor...
Close
...
HTTP Headers Nedir ve Neden Önemlidir?
HTTP Headers Nedir ve Neden Önemlidir?
İçindekiler

İ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.

HTTP Headers Nedir?

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 

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 

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.

  • Accept
  • Content-Type
  • Authorization 
  • User-Agent
  • Referer
  • Host
  • Cookie

http header google

HTTP Request / Response Header ( HTTP İstek / Yanıt Başlıkları)

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: Bu HTTP Header, hedef sunucunun adını veya IP adresini belirtir.

Örnek: Host: www.ornekweb.com

User-Agent: 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.

Örnek : User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0

Accept: 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.

Örnek : Accept: text/html

Accept-Language: İ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.

Örnek : Accept-Language: tr-TR

Authorization: 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.

Content-Type: İçeriğin türünü belirtir. 

Örnek: Content-Type: text/html; charset=utf-8

Content-Length: İstekteki içeriğin uzunluğunu belirtir. Bu uzunluğu bayt cinsinden verir. Sunucu, isteği işlerken bu bilgiyi kullanır.

Örnek: Content-Length: 1024

Referer: İ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.

Örnek: Referer: https://www.google.com/search?q=ornek+arama

Cookie: 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.

Örnek: Cookie: kullanicilar=kisi; dil=tr

Cache-Control: Önbellekleme davranışını belirler. Örneğin, "no-cache" önbelleği kullanmayı engelleyerek, sunucudan her zaman yeni içerik alınmasını sağlar.

Örnek: Cache-Control: max-age=3600

If-Modified-Since: 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.

Örnek: If-Modified-Since: Sat, 30 Jul 2023 10:30:00 GMT

Origin: Cross-Origin Resource Sharing (CORS) politikaları için köken (origin) bilgisini belirtir. Sunucu, bu bilgiyi kullanarak istemciye veri paylaşımını kontrol eder.

Örnek: Origin: https://www.ornekuygulama.com

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.

HTTP Response Headers (HTTP Yanıt Başlıkları)

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): Sunucunun işlemin durumunu belirtmek için gönderdiği üç haneli bir kod. Örneğin:

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: HTTP/1.1 200 OK

Content-Type: Yanıtın içeriğinin türünü belirtir. 

Örneğin: text/html: HTML içeriği

               application/json: JSON verisi

               image/jpeg: JPEG formatında resim

Content-Length: Yanıtın içeriğinin uzunluğunu bayt cinsinden belirtir.

Örnek: Content-Length: 1024

Cache-Control: Tarayıcıda veya önbellekleyici aracılarda içeriğin nasıl önbellekleneceğini yönlendirir. 

Örnek: Cache-Control: no-cache, no-store, must-revalidate

Location: Yönlendirme durumunda (örneğin 301 veya 302 durum kodlarıyla) kullanılması gereken yeni kaynağın URLini belirtir.

Örnek: Location: https://www.example.com/new-page

Set-Cookie: 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.

Örnek: Set-Cookie: session_id=abc123; Expires=Sat, 24 Jul 2023 12:00:00 GMT; Path=/

Date: Oluşturulan yanıtın tarih ve saat bilgisini verir.

Örnek: Date: Sun, 16 Jul 2023 18:00:00 GMT

Server: Sunucuya ait yazılımın adını ve sürümünü verir.

Örnek: Server: Apache/2.4.38 (Unix)

Content-Encoding: 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.

Örnek: Content-Encoding: gzip

ETag: İç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.

Örnek: ETag: "abc123"

Expires: Önbellekteki içeriğin geçerliliğinin sona ermiş ise buna ait tarih ve saat bilgisini verir.

Örnek: Expires: Thu, 01 Aug 2023 00:00:00 GMT

Last-Modified: İçeriğe ait son güncellenme tarihini belirtir.

Örnek: Last-Modified: Wed, 12 Jul 2023 15:30:00 GMT

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

Host: www.ornekweb.com

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-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3

Cookie: kullanicilar=x kişisi; dil=tr

Kullanılan Accept HTTP Header’da ‘text/html’ belirtilerek tarayıcının HTML içeriği kabul ettiğini, Accept-Language: tr-TR HTTP headerını kullanarak ise Türkçe dil tercihi yaptığını, son olarak ise Cookie: kullanicilar=x kişisi; dil=tr HTTP Headerı ile önceden sunucudan alınmış olan "kullanıcılar" ve "dil" adlı çerezleri sunucuya tekrar gönderdiği çıkarımını yapabilirsiniz.

HTTP/1.1 200 OK Date: Sat, 30 Jul 2023 12:00:00 GMT

 Content-Type: text/html; charset=utf-8 

Content-Length: 255 

Set-Cookie: dil=tr; expires=Sat, 06 Aug 2023 12:00:00 GMT; path=/; HttpOnly 

Server: Apache 

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 Hakkında Sıkça Sorulan Sorular

  • 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. 

Paylaş