URL
Tekdüzen Kaynak Bulucu
Kısaca
URL, web'deki bir kaynağın adresidir; şema, sunucu adı, yol ve sorgu dizesi gibi bölümlerden oluşur ve tarayıcıya kaynağın nereden, nasıl alınacağını söyler.
URL nedir?
Tekdüzen Kaynak Bulucu (Uniform Resource Locator) anlamına gelen URL, bir web sayfası, görsel ya da API uç noktası gibi belirli bir kaynağı işaret etmek için tarayıcıya yazdığınız veya kodda kullandığınız metin adrestir. Kaynağın nerede bulunduğunu ve ona ulaşmak için hangi protokolün kullanılacağını söyler. Web'deki her bağlantı bir URL'dir.
https://shop.example.com:8443/products/42?color=red#reviews örneğine bakalım. Burada https şema (scheme), shop.example.com sunucu adı (host), 8443 port (her şemanın bir varsayılanı olduğundan genellikle yazılmaz), /products/42 yol (path), ?color=red anahtar-değer parametrelerinden oluşan sorgu dizesi (query string) ve #reviews parçadır (fragment). Tarayıcı sunucu adını IP adresine çevirmek için DNS kullanır, porta bağlanır ve yolu ile sorgu dizesini bir HTTP isteğinde gönderir; parça ise tarayıcıdan hiç çıkmaz ve yalnızca sayfanın bir bölümüne atlamak ya da istemci tarafı kod için kullanılır.
URL bir posta adresi gibi çalışır: şehir ve bina (host) sizi doğru yere, daire numarası (yol) doğru kapıya ulaştırır; zarfın üzerindeki not (sorgu dizesi) ise ne istediğinizi söyler. Boşluk, & veya ? gibi özel anlamı olan karakterler yüzde kodlamasıyla (percent-encoding) yazılmalıdır; örneğin boşluk %20 olur. JavaScript'te URL sınıfı ve encodeURIComponent bunu sizin için halleder. Kısa ve okunabilir URL'lerin paylaşılması da daha kolaydır ve SEO'ya yardımcı olur.
URL çoğunlukla URI ve alan adıyla karıştırılır. URI (Uniform Resource Identifier), bir kaynağı tanımlayan her dizge için kullanılan daha geniş bir terimdir; her URL, ona nasıl ulaşılacağını da söyleyen bir URI'dir, urn:isbn:0451450523 gibi bir URN ise bir konum vermeden bir şeyi adlandırır. example.com gibi bir alan adı ise bir URL'nin yalnızca bir parçasıdır, adresin tamamı değildir.
Önemli noktalar
- URL, bir kaynağın adresidir; nerede olduğunu ve nasıl alınacağını birleştirir.
- Ana bölümleri şema, sunucu adı, isteğe bağlı port, yol, sorgu dizesi ve parçadır.
#sonrasındaki parça tarayıcıda kalır ve sunucuya gönderilmez.- Özel karakterler yüzde kodlamasıyla yazılmalıdır; örneğin boşluk
%20olur. - Her URL bir URI'dir, ama her URI bir URL değildir.
Örnek
const url = new URL("https://shop.example.com:8443/products/42?color=red#reviews");
console.log(url.protocol); // "https:"
console.log(url.hostname); // "shop.example.com"
console.log(url.port); // "8443"
console.log(url.pathname); // "/products/42"
console.log(url.searchParams.get("color")); // "red"
console.log(url.hash); // "#reviews"
// Add a query parameter safely; special characters are encoded for you
url.searchParams.set("q", "red shoes & socks");
console.log(url.search); // "?color=red&q=red+shoes+%26+socks"Sık sorulan sorular
URL ile URI arasındaki fark nedir?
URI, bir kaynağı tanımlayan herhangi bir dizgedir; URL ise ona nasıl ulaşılacağını da söyleyen, https://example.com/about gibi bir URI'dir. Gündelik web geliştirmede iki sözcük çoğunlukla birbirinin yerine kullanılır.
URL'deki sorgu dizesi (query string) nedir?
Sorgu dizesi, ? sonrasında yer alan ve ?page=2&sort=price örneğindeki gibi & ile ayrılmış key=value çiftlerinden oluşan bölümdür. Sunucuya arama terimleri, filtreler veya sayfa numarası gibi ek parametreleri iletir.
URL'ler büyük/küçük harfe duyarlı mıdır?
Şema ve sunucu adı duyarlı değildir; yani EXAMPLE.com ile example.com aynı siteye ulaşır. Yol ve sorgu dizesi ise sunucuya bağlı olarak duyarlı olabilir; dolayısıyla /About ve /about farklı sayfalar olabilir.
İlgili sayfalar
- HTTPWeb Geliştirme, s. 20HTTP, tarayıcıların, uygulamaların ve sunucuların basit bir istek-yanıt döngüsüyle web sayfaları ve veri alışverişi yapmasını sağlayan protokoldür.
- DNSDevOps ve Bulut, s. 14DNS, internetin adlandırma sistemidir; example.com gibi insanın okuyabileceği alan adlarını bilgisayarların kullandığı sayısal IP adreslerine çevirir.
- Web TarayıcısıWeb Geliştirme, s. 57Web tarayıcısı, sunuculardan web sayfalarını alıp HTML, CSS ve JavaScript'i ekranda gördüğünüz etkileşimli sayfalara dönüştüren uygulamadır.
- EndpointBackend ve API'ler, s. 11Endpoint, bir API'nin belirli bir kaynak veya eylem için istek alıp yanıt döndürdüğü, bir HTTP metoduyla birlikte kullanılan belirli bir URL'dir.
- HTTPSGüvenlik, s. 15HTTPS, tarayıcı ile web sitesi arasındaki trafiği TLS ile şifreleyen, verileri dinlemeye ve değiştirilmeye karşı koruyan HTTP'nin güvenli sürümüdür.
- SEOWeb Geliştirme, s. 40SEO, arama motorlarının bir sitenin sayfalarını bulup anlaması ve ilgili aramalarda sıralaması için içeriği ve teknik altyapıyı iyileştirme pratiğidir.
- Alan AdıWeb Geliştirme, s. 2Alan adı (domain name), example.com gibi bir web sitesinin insanların okuyabileceği adresidir; DNS sistemi bunu siteyi barındıran sunucunun IP adresine çevirir.
- Karakter kodlamasıProgramlamanın Temelleri, s. 34Karakter kodlaması, metni byte'lara ve geri metne çeviren kurallardır; her harfin saklanıp gönderilmesini sağlar. Bugünkü standart UTF-8'dir.
- Base64Programlamanın Temelleri, s. 3Base64, resim ya da anahtar gibi her tür ikili veriyi yalnızca 64 güvenli metin karakteriyle yazar; böylece veri metin için yapılmış sistemlerden geçebilir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin