URL Ayrıştırıcı

Bir webhook yanlış tetiklendiğinde veya bir izleme bağlantısı yanlış parametreler taşıdığında en hızlı yol, URL’yi parçalara ayırıp her parçayı okumaktır. Herhangi bir URL yapıştırın; bu ayrıştırıcı onu bileşenlerine ayırır: şema, kullanıcı adı ve parola, ana bilgisayar, port, yol, sorgu dizesi ve parça. Ardından sorguyu, her anahtar ve değer çiftini içeren bir tabloya açar. Sunucumuzda PHP’nin standart URL ayrıştırıcısıyla çalışır, böylece bir PHP arka ucunun aynı bağlantıyı nasıl okuyacağını tam olarak görürsünüz.

Bir URL nasıl ayrıştırılır

  1. 1

    URL'yi yapıştırın

    Mutlak veya göreli, herhangi bir URL girin. Tıklanacak bir şey yok: siz yazdıkça ayrıştırılır.

  2. 2

    Bileşenleri okuyun

    Tablo, bulunan şema, ana bilgisayar, port, kullanıcı, parola, yol, sorgu ve parça ile dolar. Boş parçalar bir tire olarak gösterilir.

  3. 3

    Sorguyu açın

    Her `key=value` çifti kendi satırında görünür; yüzde kodlaması ve `+` gerçek karakterlere çözülür.

  4. 4

    Parametreleri kopyalayın

    Kopyala düğmesi tüm sorgu parametrelerini tek seferde `key=value` satırları olarak alır ve bir API istemcisine yapıştırmaya hazır hale getirir.

Bir URL’nin anatomisi

Şu URL’yi ele alalım: https://user:pass@api.example.com:8443/v1/users?page=2&sort=name#profile. Ayrıştırıcı onu şuna böler:

Bileşen Değer
scheme https
user user
pass pass
host api.example.com
port 8443
path /v1/users
query page=2&sort=name
fragment profile

Ardından sorgu dizesi kendi tablosunda açılır: page = 2 ve sort = name.

Sorgu dizesi nasıl okunur

  • Değerler yüzde kodlamasından çözülür ve + bir boşluğa dönüşür, bu yüzden q=hello%20world ve q=hello+world ikisi de hello world olarak okunur.
  • Bir çift ilk = işaretinde bölünür, bu yüzden token=a=b=c değeri a=b=c olarak korur.
  • Tekrarlanan anahtarlar yalnızca son değeri korur: ?id=1&id=2, id = 2 döndürür. Tüm değerleri korumak için id[]=1&id[]=2 dizi söz dizimini kullanın; liste olarak gösterilir.
  • filter[status]=open gibi köşeli parantezli anahtarlar iç içe bir yapıya dönüşür ve JSON olarak gösterilir.

Portlar, yollar ve parçalar

  • Port tam olarak yazıldığı gibi gösterilir. Hiçbir şey eklenmez veya çıkarılmaz, bu yüzden :443, 443 olarak görünür ve portu olmayan bir URL satırı boş bırakır.
  • Sondaki eğik çizgi yolu değiştirir: https://a.com boş bir yola sahipken https://a.com/ yolu / olur.
  • Parça (# işaretinden sonra) yalnızca tarayıcının kullandığı bir değerdir; bir çapaya kaydırmak veya istemci tarafı bir yönlendiriciyi sürmek için kullanılır. Sunucuya asla ulaşmaz, bu yüzden bir arka ucun okuması gereken her şey sorgu dizesinde yer almalıdır.
  • Ana bilgisayar tam olarak girildiği gibi döndürülür; bu ayrıştırıcı uluslararasılaştırılmış (ASCII olmayan) alan adlarını Punycode’a veya Punycode’dan dönüştürmez.

Sık Sorulan Sorular

Evet. /v1/users?ref=nav gibi göreli bir bağlantının şeması veya ana bilgisayarı yoktur, bu yüzden o satırlar boş kalırken yol ve sorgu yine de doldurulur. Yalnızca hatalı biçimli bir URL, örneğin http://a.com:port gibi sayısal olmayan bir port içeren, tamamen reddedilir.

Yalnızca son değer korunur, bu yüzden ?id=1&id=2, bir PHP arka ucunun okuyacağı gibi tam olarak id = 2 döndürür. Tüm değerlere ihtiyacınız varsa id[]=1&id[]=2 dizi söz dizimini kullanın; liste olarak görünürler.

Ayrıştırıcı portu tam olarak yazıldığı gibi bildirir. Varsayılan bir portu asla kaldırmaz ve eksik bir portu asla eklemez, bu yüzden portu olmayan bir URL boş bir satır gösterir ve https://a.com:443, 443 gösterir.

URL, ayrıştırılmak üzere sunucumuza gönderilir çünkü bu araç yalnızca tarayıcınızda değil sunucu tarafında çalışır. URL’lerin kendisini saklamayız; yalnızca ayrıştırıcının kullanıldığına dair anonim bir sayım kaydederiz.

İlgili Araçlar

Araç diğer dillerde mevcuttur