Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz. Devamını oku.

URL'ler (Tekdüzen Kaynak Bulucuları), internetin en kritik altyapı parçalarından biridir. Web uygulamaları oluştururken, kaynakları bulmak ve almak için URL'leri değiştirmeniz gerekecektir.

Daha karmaşık web uygulamaları oluşturduğunuzda, URL'lerle daha ayrıntılı bir düzeyde çalışmanız gerekir. Düzeni, ana bilgisayar adını, yolu ve sorgu parametrelerini tanımlamanız gerekebilir. Özel karakterleri işleyebilmek ve web uygulamanızı güvende tutabilmek için URL'leri nasıl kodlayacağınızı ve kodunu çözeceğinizi de bilmeniz gerekir.

Go'nun standart kitaplığı, URL'leri ve URL bileşenlerini işlemek için net/url paketini sağlar.

URL Paketi

bu url paket, çalışmak için kapsamlı işlevler ve özellikler sağlar URL'ler ve ayrı bölümleri. URL'lerin ayrıştırılması, oluşturulması, kodlanması ve kodunun çözülmesi için işlevler sağlayarak, paketi web geliştirme için kullanışlı hale getirir.

instagram viewer

temel özelliklerinden bazıları url paket, HTTP istekleri için manipülasyon ve URL oluşturma için URL'leri ayrı bileşenlere ayrıştırma yeteneğidir. bu url paket ayrıca sağlar URL ile yapı Ayrıştır dizeleri URL'lere ayrıştırma yöntemi.

Burada url. URL yapı modeli:

paket ana

tip URL yapı {
// Şema, URL'nin protokol şemasıdır,
// "http" veya "https" gibi
şema sicim

// Opak, herhangi bir opak veriyi tutmak için kullanılır
// URL'de kodlanması gereken
Opak sicim

// Kullanıcı, istekte bulunan kullanıcı hakkında bilgi tutar,
// kullanıcı adı ve şifre gibi
Kullanıcı *Kullanıcı Bilgileri

// Ana bilgisayar, ana bilgisayar adı veya IP adresidir
// URL'yi barındıran sunucunun
Ev sahibi sicim

// Yol, sunucudaki URL'nin yoludur
Yol sicim

// RawPath orijinaldir,
// URL'nin kodlanmış yolu
hamyol sicim

// ForceQuery, URL'nin bir sorgu dizesi içerip içermeyeceğini belirtir
// boş olsa bile
ForceQuery bool

// RawQuery orijinaldir,
// URL'nin kodlanmış sorgu dizesi
ham sorgu sicim

// Parça, URL'nin parça tanımlayıcısıdır,
// bir sayfadaki belirli bir öğeye bağlantı vermek için kullanılır
parça sicim

// RawFragment orijinaldir,
// URL'nin kodlanmış parça tanımlayıcısı
Ham Parça sicim
}

Çeşitli bölümlerine nasıl erişileceğini bilmek URL struct, doğrulama gibi görevler için yararlı olabilir.

Ayrıştırma İşlevini Kullanarak URL'leri Ayrıştırma

bu Ayrıştır işlevi url package, URL dizelerini Bireysel bileşenlere ayrıştırmak için işlevsellik sağlar. bu Ayrıştır işlev tek bir URL'yi bağımsız değişken olarak alır ve şu adrese bir işaretçi döndürür: url. URL URL'nin ayrıştırılmış verilerini ve bir hata türünü içeren yapı.

Şu şekilde kullanabilirsiniz: Ayrıştır bir URL'nin öğelerini almak için işlev.

içe aktarmak (
"fmt"
"ağ/url"
)

işlevana() {
// Ayrıştırmak istediğiniz URL
örnekURL := " https://www.example.com/path? param1=değer1&param2=değer2"

// URL'yi ayrıştır
ayrıştırılmışURL, hata := url. Ayrıştır (exampleURL)

eğer hata!= sıfır {
fmt. Println (hata)
geri dönmek
}

// URL'nin tüm alanlarını yazdır
fmt. Yazdır("Şema:", ayrıştırılmışURL.Şema)
fmt. Yazdır("Opak:", parsedURL.Opak)
fmt. Yazdır("Kullanıcı:", parsedURL.User)
fmt. Yazdır("Ev sahibi:", ayrıştırılmışURL.Host)
fmt. Yazdır("Yol:", ayrıştırılmışURL.Yol)
fmt. Yazdır("RawPath:", parsedURL.RawPath)
fmt. Yazdır("ForceQuery:", parsedURL.ForceQuery)
fmt. Yazdır("Ham Sorgu:", parsedURL.RawQuery)
fmt. Yazdır("Parça:", parsedURL.Fragment)
fmt. Yazdır("Ham Parça:", parsedURL.RawFragment)
}

bu örnekURL değişkeni tam, ayrıştırılmamış URL'yi tutar ve Ayrıştır işlev içeriğini ayrıştırır örnekURL değişken ve ayrıştırılmış URL'yi döndürür. Program, bir dizi aramayla sona erer. Yazdır bireysel alanları göstermek için URL yapı

Ayrıştırma işlevi, bir URL'nin gerçekte var olan gerçek olup olmadığını kontrol etmez, yalnızca sözdizimsel olarak URL'yi ayrıştırır. kullanabilirsiniz http paket URL'ye bir GET isteği yapmak ve yanıtı kontrol etmek için:

içe aktarmak (
"fmt"
"ağ/http"
)

işlevana() {
// Kontrol etmek istediğiniz URL
örnekURL := " https://www.example.com"

// URL'ye bir HTTP GET isteği yapın
yanıt, hata := http. Al (exampleURL)

eğer hata!= sıfır {
fmt. Println (hata)
geri dönmek
}

ertelemek cevap. Vücut. Kapalı()

// Yanıt durum kodunu kontrol edin
eğer cevap. DurumKodu == http. DurumTAMAM {
fmt. Yazdır("URL var.")
} başka {
fmt. Yazdır("URL mevcut değil.")
}
}

bu ana fonksiyon bir yapar ELDE ETMEK istek örnekURL kullanmak Elde etmek işlevi http paket. Bu işlev, bir yanıt örneği ve hata türü döndürür. Program bir ile sona erer eğer kontrol ederek web sitesinin varlığını doğrulamak için beyan HTTP durum kodu karşı DurumTamam gelen sabit http paket.

Bu yaklaşım, kontrolün sonucuna göre yeniden yönlendirme gibi işlemler yapmanızı sağlar. Kullanıcının farklı bir sayfaya gitmesi, hata mesajı görüntülenmesi veya belirli bir süre sonra isteği yeniden denemesi dönem.

URL Parametrelerini Kodlama ve Kod Çözme

bu url paket sağlar kodlamak URL parametrelerini kodlama yöntemi. bu kodlamak işlevi yüzde-URL parametrelerindeki özel karakterleri ve boşlukları kodlar.

içe aktarmak (
"fmt"
"ağ/url"
)

işlevana() {
// yeni bir url oluştur. değerler yapısı
parametreler := url. Değerler{}

// yapıya değerler ekleyin
parametreler. Eklemek("isim", "John Smith")
parametreler. Eklemek("yaş", "30")
parametreler. Eklemek("cinsiyet", "erkek")

// yapıyı bir dizeye kodla
encodedParams := parametreler. Kodla()
fmt. Println (encodedParams)

// Çıktı: "yaş=30&cinsiyet=erkek&isim=John+Smith"
}

bu ana işlev yeni bir oluşturur Değerler yapı örneği url paket ve Eklemek yapı örneğinin yöntemi, yapı örneğine anahtar-değer veri çiftleri ekler.

bu kodlamak yöntemi, anahtar/değer çiftini "key1=value1&key2=value2&key3=value3" URL dize biçimine dönüştürür.

ile kodlanmış bir URL dizesinin kodunu çözebilirsiniz. Ayrıştırma Sorgusu işlevi url paket.

içe aktarmak (
"fmt"
"ağ/url"
)

işlevana() {
// kodlanmış URL parametreleri dizisi
kodlanmışparamlar := "yaş=30&gender=erkek&isim=John+Smith"

// kodlanmış dizgiyi bir url'ye ayrıştır. değerler yapısı
parametreler, hata := url. Ayrıştırma Sorgusu (encodedParams)

eğer hata!= sıfır {
fmt. Println (hata)
}

// yapıyı yazdır
fmt. Yazdır (paramlar)

// Çıktı: harita[yaş:[30] cinsiyet:[erkek] isim:[John Smith]]
}

bu kodlanmışParametre değişken kodlanmış bir URL dizesidir. bu Ayrıştırma Sorgusu fonksiyon alır kodlanmışParametre değişkeni ve kodu çözülmüş URL dizesini ve bir hata döndürür.

Bu Go Paketleri Web Yönlendirme Oyununuzu Bir Sonraki Seviyeye Taşıyabilir

Web uygulamanızın sayfaları için kullandığınız URL'ler, performansına ve arama motorlarında görünürlüğüne katkıda bulunur. Web yönlendirme, gelen istekleri URL'ye dayalı olarak uygun işleyici işlevine yönlendirme işlemidir.

http paketini veya Gorilla Mux, Chi, Pat veya Httprouter gibi popüler üçüncü taraf paketlerini kullanarak yönlendirme yapabilirsiniz. Bu paketler, bazı karmaşıklıklarını ortadan kaldırarak yönlendirmeyi http paketinden daha kolay hale getirir.