Zaman Aşımları ve Üst Bilgileri Ayarlama
İstemci zaman aşımları, özel üst bilgiler ve kimlik doğrulama belirteçleri
Zaman Aşımları ve Üst Bilgileri Ayarlama, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
İstemci düzeyinde zaman aşımı
İstek ve yanıt için toplam süreyi sınırlamak üzere http.Client.Timeout ayarlayın. Bu, yapılandırılması en kolay zaman aşımıdır.
client := &http.Client{Timeout: 10 * time.Second}Taşıma düzeyinde zaman aşımları
Bağlantı kurulumu ve TLS el sıkışması zaman aşımlarını http.Transport üzerinden ayrıntılı biçimde ayarlayın:
t := &http.Transport{
DialContext: (&net.Dialer{
Timeout: 5 * time.Second,
KeepAlive: 30 * time.Second,
}).DialContext,
TLSHandshakeTimeout: 5 * time.Second,
ResponseHeaderTimeout: 5 * time.Second,
}
client := &http.Client{Transport: t, Timeout: 30 * time.Second}Bağlam tabanlı zaman aşımı
Bağlam zaman aşımları istek başınadır ve alt çağrılara aktarılır. Son tarih geçtiğinde isteği iptal ederler.
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
req, _ := http.NewRequestWithContext(ctx, "GET", url, nil)İstek üstbilgilerini ayarlama
Bir isteğe req.Header.Set (değiştirir) veya req.Header.Add (ekler) ile üstbilgi ekleyin:
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Accept", "application/json")
req.Header.Set("X-Request-ID", requestID)Yaygın üstbilgiler
İstek gövdeleri için Content-Type; istenen yanıt biçimi için Accept; kimlik doğrulama belirteçleri için Authorization; istemci tanımlaması için User-Agent.
Yanıt üstbilgilerini okuma
Yanıt üstbilgilerini resp.Header.Get(key) üzerinden okuyun:
contentType := resp.Header.Get("Content-Type")
retryAfter := resp.Header.Get("Retry-After")Boşta bağlantı zaman aşımı
Trafik azaldığında boşta bağlantıların birikmesini önlemek ve bunları kapatmak için taşıma üzerinde IdleConnTimeout ayarlayın.
t.IdleConnTimeout = 90 * time.Second
t.MaxIdleConnsPerHost = 10TLS yapılandırması
TLS'yi (en düşük sürüm, istemci sertifikaları) taşıma üzerindeki tls.Config aracılığıyla özelleştirin:
t.TLSClientConfig = &tls.Config{MinVersion: tls.VersionTLS12}Zaman aşımı hatalarını algılama
errors.As kullanarak zaman aşımı hatalarını ağ hatalarından ayırt edin:
var urlErr *url.Error
if errors.As(err, &urlErr) && urlErr.Timeout() {
// handle timeout
}İstek başına ve istemci zaman aşımı
Client.Timeout her istek için geçerlidir. Bağlam zaman aşımı istek başınadır ve istemci zaman aşımından daha kısa olabilir. Her ikisine de uyulur — kısa olan kazanır.
Keep-alive'ı devre dışı bırakma
Az sayıda bağlantı açan kısa ömürlü programlarda bağlantı havuzlamasının ek yükünden kaçınmak için taşıma üzerinde DisableKeepAlives: true ayarlayın.
Hızlı Kontrol
Hem http.Client.Timeout hem de bir bağlam zaman aşımı ayarlandığında hangisi geçerli olur?
Özet: Zaman Aşımları ve Üstbilgiler
Temel noktalar:
- client.Timeout: istek başına toplam zaman aşımı
- context.WithTimeout: iptal edilebilir ve yayılan zaman aşımı
- Özel üstbilgiler için req.Header.Set
- Ayrıntılı TLS, bağlantı kurma ve boşta kalma zaman aşımları için Transport
Sıkça Sorulan Sorular
“Zaman Aşımları ve Üst Bilgileri Ayarlama” dersi ücretsiz mi?
Evet — “Zaman Aşımları ve Üst Bilgileri Ayarlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“Zaman Aşımları ve Üst Bilgileri Ayarlama” dersinde ne öğreneceğim?
İstemci zaman aşımları, özel üst bilgiler ve kimlik doğrulama belirteçleri Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Zaman Aşımları ve Üst Bilgileri Ayarlama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- HTTP İstekleri Gönderme
- Zaman Aşımları ve Üst Bilgileri Ayarlama
- JSON Yanıtlarının Kodunu Çözme
- Hata Yönetimi ve Yeniden Deneme Mantığı