İçeriğe geç
Glossary 8 dk okuma 1440 görüntülenme

User-Agent

Bu makale User-Agent dizelerini, çalışma mekanizmalarını ve gizlilik ile güvenlik için onları değiştirmenin temel nedenlerini açıklıyor.

Browser
User-Agent

User-Agent (UA), isteği başlatan istemci yazılımını — web tarayıcısı, mobil uygulama veya bot gibi — sunucuya tanıtan bir HTTP başlık alanıdır.

User-Agent nedir?

User-Agent dizesi, istemci isteklerinin HTTP başlıklarında yer alan karakteristik bir metin dizesidir. Temel amacı, sunucuya istemcinin türü, işletim sistemi, yazılım üreticisi ve/veya yazılım sürümü hakkında bilgi vermektir. Sunucular bu bilgiyi, ilgili istemciye optimize edilmiş içerik sunmak, istemci istatistiklerini kaydetmek veya erişim denetimi uygulamak için kullanabilir.

User-Agent dizesinin yapısı

Tek ve katı bir biçim bulunmasa da, User-Agent dizeleri genellikle belirli bir kalıbı izler: tarihsel nedenlerle çoğu zaman Mozilla/5.0 ile başlar, ardından platform ayrıntıları, işletim sistemi ve tarayıcı bilgileri gelir.

Örnek User-Agent dizesi:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Tipik bir User-Agent dizesinin çözümlenmesi:

  • Mozilla/5.0: Tarihsel bir token; Mozilla render motoruyla uyumluluğu belirtir. Modern tarayıcıların çoğu bunu uyumluluk için ekler.
  • (Windows NT 10.0; Win64; x64): Platform bilgisi.
    • Windows NT 10.0: İşletim sistemi (Windows 10).
    • Win64: CPU mimarisi (64 bit Windows).
    • x64: CPU mimarisi (64 bit işlemci).
  • AppleWebKit/537.36 (KHTML, like Gecko): Render motoru bilgisi.
    • AppleWebKit/537.36: Chrome ve Safari'de yaygın olan AppleWebKit render motorunun kullanıldığını gösterir.
    • KHTML, like Gecko: Diğer tarihsel uyumluluk token'ları. KHTML, WebKit'in temelini oluşturmuştu; Gecko ise Mozilla'nın motorudur.
  • Chrome/120.0.0.0: Tarayıcı kimliği ve sürümü.
  • Safari/537.36: İkincil tarayıcı kimliği; Safari bekleyen sitelerle uyumluluk için Chrome tarafından sıkça eklenir.

User-Agent, HTTP isteklerinde nasıl çalışır

Bir istemci (örneğin bir web tarayıcısı veya bir betik) sunucuya HTTP isteği başlattığında çeşitli başlıklar ekler. Bunlardan biri de User-Agent başlığıdır.

  1. İstemci isteği: İstemci HTTP isteğini oluşturur ve User-Agent başlığını varsayılan dizesiyle otomatik olarak doldurur.
  2. Sunucunun isteği alması: Sunucu isteği alır ve User-Agent dahil olmak üzere başlıkları ayrıştırır.
  3. Sunucu tarafında işleme: Sunucu, User-Agent dizesine bakarak şunları yapabilir:
    • Farklı içerik sunmak: Mobil tarayıcı User-Agent'ına sayfanın mobil için optimize edilmiş sürümünü, masaüstü tarayıcı User-Agent'ına ise masaüstü sürümünü göndermek.
    • Özel stil/betik uygulamak: CSS veya JavaScript'i bilinen tarayıcı tuhaflıklarına göre uyarlamak.
    • İstemci istatistiklerini kaydetmek: Tarayıcı kullanımını, işletim sistemi dağılımını ve bot etkinliğini izlemek.
    • Güvenlik önlemleri uygulamak: Bilinen kötü amaçlı User-Agent'lardan veya otomatik scraping araçlarıyla ilişkilendirilen User-Agent'lardan gelen istekleri engellemek ya da doğrulamaya tabi tutmak.
    • Yönlendirmek veya erişimi engellemek: Algılanan istemci türüne göre belirli kaynaklara erişimi reddetmek.

Proxy servislerinin rolü

Proxy servisi, istemci ile hedef sunucu arasında aracı görevi görür. İstemci bir istek proxy üzerinden gönderdiğinde, proxy isteği hedef sunucuya iletmeden önce User-Agent dizesi dahil HTTP başlıklarını yakalayıp değiştirebilir. Bu değişiklik, istemcinin sunucuya kendi orijinal kimliğinden farklı bir kimlik göstermesini sağlar.

User-Agent'ı neden değiştirmeli?

User-Agent dizesini değiştirmek, çoğu zaman proxy servisleriyle birlikte, çeşitli teknik senaryolarda yaygın bir uygulamadır.

1. Web scraping ve veri toplama

Sitelerden otomatik veri çıkarma işlemi, sıklıkla User-Agent dizelerini inceleyen anti-bot mekanizmalarıyla karşılaşır.
* Anti-bot tespitini aşmak: Birçok site, genel veya bilinen bot User-Agent'larından (örneğin Python-requests/2.25.1, curl/7.64.1) gelen istekleri tespit edip engeller. Gerçekçi tarayıcı User-Agent'larından oluşan bir havuzu rotasyona sokarak scraper'lar meşru kullanıcı trafiğini taklit edebilir; böylece tespit ve engellenme olasılığı azalır.
* Cihaza özgü verilere erişmek: Siteler mobil ve masaüstü tarayıcılara farklı içerik veya yapı sunabilir. User-Agent'ı değiştirmek, scraper'ın istediği mobil ya da masaüstü görünümünden veri istemesine ve toplamasına olanak tanır.
* Tutarlı veri elde etmek: Bazı A/B testi veya içerik kişiselleştirme sistemleri User-Agent'a dayanır. Tutarlı ve belirli bir User-Agent kullanmak, scraper'ın her zaman içeriğin aynı sürümünü almasını sağlayarak veri tutarlılığını destekler.

2. Test ve geliştirme

Geliştiriciler, kalite güvencesi ve hata ayıklama için User-Agent değişikliğinden yararlanır.
* Tarayıcılar/cihazlar arası uyumluluk testi: Geliştiriciler; farklı tarayıcıları (Chrome, Firefox, Safari), işletim sistemlerini (Windows, macOS, Linux) ve cihaz türlerini (masaüstü, tablet, mobil) simüle ederek bir sitenin veya uygulamanın çeşitli ortamlarda nasıl göründüğünü ve çalıştığını, birden fazla fiziksel cihaza veya sanal makineye ihtiyaç duymadan test edebilir.
* Tarayıcıya özgü sorunları ayıklamak: Bir hata yalnızca belirli bir tarayıcıda ortaya çıkıyorsa, User-Agent'ı değiştirmek geliştiricinin ortamı yeniden oluşturup sorunu ayıklamasına imkân verir.
* Mobil/masaüstü yönlendirmelerini test etmek: User-Agent'a dayalı sunucu tarafı yönlendirmelerin kullanıcıları sitenin doğru sürümüne yönlendirdiğini doğrulamak.

3. Gizlilik ve anonimlik

User-Agent'ı değiştirmek, çevrimiçi gizliliği artırmaya yönelik daha geniş bir stratejinin parçasıdır.
* Tarayıcı fingerprinting'ini azaltmak: User-Agent dizesi, sitelerin kullanıcıları izlemek için kullanabildiği benzersiz tarayıcı parmak izinin bileşenlerinden biridir. User-Agent'ları sık sık değiştirerek veya rastgeleleştirerek kullanıcılar, sitelerin bu başlığa dayalı kalıcı bir profil oluşturmasını zorlaştırır.
* İstemci ayrıntılarını gizlemek: Değiştirilmiş bir User-Agent, hedef sunucunun gerçek istemci yazılımını, işletim sistemini ve sürümünü doğru şekilde belirlemesini engeller ve böylece anonimliği artırır.

4. Erişim kısıtlamalarını aşmak

Sunucular, algıladıkları istemciye göre erişim denetimleri uygulayabilir.
* Coğrafi kısıtlamalı içerik (IP proxy'leriyle birlikte): User-Agent tek başına konumu değiştirmese de bazı servisler User-Agent kontrollerini IP konumuyla birleştirebilir. Gerçekçi bir User-Agent ile hedef bölgeden bir proxy IP'si birleştiğinde çok daha inandırıcı bir profil ortaya çıkar.
* Siteye özgü engelleme: Bazı siteler eski tarayıcı sürümlerini veya belirli bot User-Agent'larını engeller. User-Agent'ı güncel ve yaygın bir tarayıcıyla değiştirmek bu kısıtlamaları aşabilir.
* Mobil/masaüstü sürümlere erişmek: Bazı siteler User-Agent'a göre otomatik yönlendirme yapar. Açıkça mobil bir User-Agent ayarlamak, masaüstünde bile sitenin mobil sürümünü sunmasını sağlayabilir; tersi de geçerlidir.

5. Araştırma ve analitik

Araştırmacıların belirli kullanıcı ortamlarını simüle etmesi veya farklı koşullarda veri toplaması gerekebilir.
* Pazar araştırması: Sitelerin belirli cihaz veya tarayıcılara sahip kullanıcılara içeriği nasıl sunduğunu anlamak.
* Güvenlik araştırması: Web uygulamalarının, bozuk veya sıra dışı olanlar dahil çeşitli User-Agent dizelerine nasıl yanıt verdiğini analiz ederek olası güvenlik açıklarını belirlemek.

Proxy servisiyle User-Agent nasıl değiştirilir

Bir proxy servisi kullanıldığında, User-Agent başlığı istek hedef sunucuya ulaşmadan önce proxy düzeyinde değiştirilir. Böylece hedef sunucu, orijinal istemcinin User-Agent'ını değil yalnızca proxy'nin sağladığı User-Agent'ı görür.

1. HTTP/SOCKS5 proxy'leri (manuel başlık enjeksiyonu)

İstekleri yalnızca ileten proxy'lerde User-Agent başlığını istemci uygulamasının kendisi ayarlamalıdır. Proxy ise bu değiştirilmiş başlığı iletir.

Python requests kütüphanesiyle örnek:

import requests

target_url = "http://httpbin.org/user-agent" # User-Agent'ı geri döndüren bir servis

# İstenen User-Agent dizesini tanımla
custom_user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1"

# Proxy bilgilerini tanımla
proxy_url = "http://user:[email protected]:port" # Kendi proxy bilgilerinizle değiştirin

# Özel User-Agent ile başlıkları hazırla
headers = {
    "User-Agent": custom_user_agent
}

# proxies sözlüğünü hazırla
proxies = {
    "http": proxy_url,
    "https": proxy_url,
}

try:
    response = requests.get(target_url, headers=headers, proxies=proxies, timeout=10)
    response.raise_for_status() # Hatalı yanıtlar (4xx veya 5xx) için HTTPError fırlat
    print("Response from target server:")
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Bu örnekte requests kütüphanesi, headers sözlüğünde belirtilen User-Agent başlığını gönderir. İstek daha sonra proxies sözlüğünde tanımlanan proxy üzerinden yönlendirilir. Hedef sunucu (httpbin.org), custom_user_agent dizesini alır.

2. Smart proxy'ler / proxy API'leri (otomatik yönetim)

Bazı gelişmiş proxy servisleri veya API'leri, yerleşik User-Agent yönetimi sunar: proxy'ye yapılan ilk istek dışında istemci tarafında ek yapılandırma gerekmeden User-Agent'ları otomatik olarak ayarlar veya rotasyona sokar.

  • Başlık enjeksiyonu: Proxy servisi, istemci hiçbir User-Agent göndermediğinde belirli ya da rastgele bir User-Agent'ı otomatik eklemek veya istemcinin User-Agent'ını geçersiz kılmak için bir seçenek sunabilir.
  • API parametreleri: Bazı proxy API'leri, istenen User-Agent'ın doğrudan API çağrısında parametre olarak belirtilmesine izin verir.

Kavramsal örnek (API tabanlı proxy):

import requests

# Varsayımsal bir proxy API uç noktası olduğunu varsayalım
proxy_api_url = "https://api.proxyprovider.com/request"
target_url = "http://httpbin.org/user-agent"

# Proxy API için parametreler
params = {
    "targetUrl": target_url,
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "apiKey": "YOUR_API_KEY"
}

try:
    response = requests.get(proxy_api_url, params=params, timeout=15)
    response.raise_for_status()
    print("Response from target server via proxy API:")
    print(response.json())
except requests.exceptions.RequestException as e:
    print(f"An error occurred: {e}")

Bu kavramsal senaryoda proxy servisi, API'sine iletilen userAgent parametresine göre User-Agent değişikliğini kendi içinde gerçekleştirir.

Yaygın User-Agent dizeleri ve en iyi uygulamalar

Uygun bir User-Agent seçmek, hedef sunucularla etkili etkileşim için kritik önemdedir.

Yaygın User-Agent kategorileri

Kategori Örnek User-Agent dizesi Tipik kullanım senaryosu
Masaüstü Chrome Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Genel web gezintisi simülasyonu, masaüstü için optimize edilmiş sitelerden veri kazıma.
Masaüstü Firefox Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/120.0 Genel web gezintisi simülasyonu, masaüstü için optimize edilmiş sitelerden veri kazıma, Firefox'a özgü render testleri.
Mobil Safari (iOS) Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1 Mobil web scraping, sitenin mobil sürümlerini test etme, iOS cihaz trafiğini simüle etme.
Mobil Chrome (Android) Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36 Mobil web scraping, sitenin mobil sürümlerini test etme, Android cihaz trafiğini simüle etme.
Genel bot Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) SEO analizi, herkese açık içeriğin taranması (robots.txt kurallarına uyarak), arama motoru botu olarak tanınma. Özel olarak beyaz listeye alınmadıysa anti-bot sistemleri tarafından sıklıkla engellenir.
Minimal/özel MyCustomScraper/1.0 Sunucuyla etkileşimin bilindiği ve izin verildiği özel bir uygulamayı tanıtmak veya dahili araçlar için. Yüksek engellenme riski nedeniyle herkese açık site scraping'i için genellikle uygun değildir.

User-Agent yönetimi için en iyi uygulamalar

  1. Gerçekçi User-Agent'lar kullanın: Yaygın tarayıcıları ve işletim sistemlerini taklit edin. Herkese açık siteleri kazırken veya test ederken genel ya da boş User-Agent'lardan kaçının; bunlar sıklıkla bot olarak işaretlenir.
  2. User-Agent'ları rotasyona sokun: Otomatik görevlerde çeşitli User-Agent'lar arasında dönmek (örneğin farklı işletim sistemlerinde Chrome, Firefox ve Safari karışımı) trafiğin daha organik ve daha az öngörülebilir görünmesini sağlar.
  3. User-Agent'ları güncel tutun: Güncel tarayıcı sürümlerini kullanın. Eskimiş User-Agent'lar uyarı veya engellemeleri tetikleyebilir; çünkü eski ya da yamalanmamış bir sistemi veya tespitten kaçmaya çalışan bir botu işaret edebilirler.
  4. User-Agent'ı hedef içerikle eşleştirin: Sitenin mobil sürümünü hedefliyorsanız mobil bir User-Agent kullanın. Masaüstü sürümünü hedefliyorsanız masaüstü User-Agent'ı kullanın.
  5. IP rotasyonuyla birleştirin: Sağlam bir scraping veya erişim için User-Agent rotasyonu, proxy servisi üzerinden IP adresi rotasyonuyla birleştirilmelidir. Bu ikili yaklaşım, tespit ve engellenme olasılığını belirgin biçimde azaltır.
  6. Bozuk User-Agent'lardan kaçının: User-Agent dizelerinin sözdizimsel olarak doğru olduğundan ve meşru olanlara benzediğinden emin olun. Bozuk dizeler sunucuda ayrıştırma hatalarına yol açabilir veya isteği anında şüpheli olarak işaretleyebilir.
Güncellendi: 03.03.2026
Kategoriye dön

Bunları da okuyun

Glossary 3 dk

Mobil proxy nedir? 4G/5G proxy'ler açıklandı

Mobil proxy, trafiği gerçek bir 4G/5G cihaz üzerinden yönlendirir ve size binlerce gerçek kullanıcının paylaştığı bir operatör IP'si verir — engellenmesi en zor tür. Nasıl çalıştıklarını ve ne zaman kullanılacağını anlatıyoruz.

Glossary 3 dk

ISP proxy nedir? Statik residential proxy'ler açıklandı

ISP proxy, veri merkezinde barınan ama residential bir ISP'ye kayıtlı statik bir IP'dir — residential güveni, veri merkezi hızı ve sabit IP. Nasıl çalıştıklarını ve ne zaman kullanılacağını anlatıyoruz.

Glossary 3 dk

HTTP ve HTTPS Proxy: Fark Nedir?

HTTP proxy web trafiğinizi okuyabilir; HTTPS proxy onu CONNECT ile şifreli tüneller. Gerçek fark, proxy'nin ne gördüğü ve hangisini seçmeniz gerektiği.

Glossary 4 dk

Proxy nedir? Yeni başlayanlar için eksiksiz rehber

Proxy sunucusu, trafiğinizi farklı bir IP üzerinden yönlendirerek gerçek IP adresinizi gizleyen bir aracıdır. Proxy'lerin nasıl çalıştığını, temel türlerini ve doğru olanı nasıl seçeceğinizi anlatıyoruz.

Glossary 4 dk

SOCKS5 ile HTTP Proxy: Farkları, Hızı ve Hangisi Ne Zaman Kullanılır

SOCKS5 ve HTTP proxy'ler farklı sorunları çözer. HTTP proxy web trafiğini anlar, önbelleğe alabilir veya filtreleyebilir; SOCKS5 ise herhangi bir TCP/UDP bağlantısını körlemesine iletir — yalnızca gezinmeyi değil, torrentleri, oyunları, e-postayı da. İkisi de kendi başına trafiği şifrelemez. Hangisinin ne zaman kazandığını burada bulacaksınız.

Glossary 1 dk

CDN ve proxy'ler: Nasıl çalışır

CDN ve proxy'ler — birlikte nasıl çalışır — proxy ve ağ teknolojileri alanına ait bir terim.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.