Verileri bir sunucu üzerinden aktarırken Curl’ü kullanabilirsiniz. HTTPS ve HTTP dahil olmak üzere çok sayıda protokolü destekleyen açık kaynaklı ve platformlar arası bir araçtır. Curl tüm platformlarda çalışır. Ancak, sunucuya bağlanırken Curl’ün zaman aşımına uğradığı ve bağlantıların kesilmesine neden olan bir durumla karşılaşabilirsiniz. Böyle bir durumunuz varsa, bu gönderi Curl’de zaman aşımlarını nasıl önleyeceğiniz konusunda size rehberlik eder. Okumaya devam edin!
Curl Zaman Aşımlarını Anlamak
Curl, HTTP isteği gibi bir isteği yürüttüğünde, belirli bir olayı beklemek için gereken maksimum süre, zaman aşımı süresidir. Zaman aşımları, Curl’ün bağlantı kurması, yanıt beklemesi ve hatta veri aktarması için gereken süreyi kontrol etmek için idealdir. Kıvrılma zaman aşımı, –max-time veya –connect-timeout parametreleri kullanılarak ayarlanır.
Karşılaşabileceğiniz farklı Curl zaman aşımları vardır. Örneğin, bir bağlantı zaman aşımı, Curl’ün sunucu bir TCP bağlantısı kurmadan önce bekleyeceği süreyi belirler. Curl, ayarlanan süre içinde bağlantıyı kuramazsa bağlantı iptal edilir. Bunu nasıl önleyeceğimizi bir sonraki bölümde göreceğiz.
Curl’de Zaman Aşımı Nasıl Önlenir?
Zaman aşımları bağlantınızı etkileyebilir ve görevlerinizi gerçekleştirmenizi engelleyebilir. Zaman aşımları nedeniyle zor zamanlar geçiriyorsanız, bunları engellemenin bir yolu var. Doğru zaman aşımı değerlerini ayarlayarak, Curl’ün gecikmeleri önlemek için istekleri ne kadar süre bekleyeceğini kontrol etmeyi başaracaksınız. Zaman aşımlarını tanımlayarak, Curl’ün HTTP isteklerini nasıl ele aldığını kontrol etmeyi başaracaksınız.
Curl’de zaman aşımlarını önlemenin iki ana yolu vardır:
1. –connect-timeout <seconds>
Bağlantı zaman aşımı durumunda, Curl’ün bağlantı kurması için gereken zaman aşımı süresini saniye cinsinden uzatabilir veya yanıt alınamaması durumunda bağlantıyı iptal edebilirsiniz. –connect-timeout seçeneğiyle, zaman aşımınızı aşağıdaki sözdizimiyle saniye cinsinden ayarlarsınız:
curl –connect-timeout <seconds> <url>
İşte zaman aşımını 20 saniyeye ayarladığımız bir örnek:
Ayarladığınız süre, bağlantınızın kesilmesi için geçen maksimum süredir. Bu şekilde, Curl kullanırken zaman aşımlarını önleyeceksiniz.
2. –max-time <seconds>
Curl’de zaman aşımlarını önlemenin alternatif bir yolu, bağlantının ve aktarımın tamamlanması için Curl’ün beklemesi gereken toplam zaman aşımını belirtmektir. Bu toplam zaman aşımı, aşağıdaki söz dizimiyle –max-time seçeneği kullanılarak ayarlanır:
curl –max-time <seconds> <url>
Örneğin, aşağıda gösterildiği gibi -max-time 30 saniyeye sahip olabiliriz:
Bu nedenle, Curl’ün herhangi bir zaman aşımı yaşaması 30 saniye sürer. Bağlantının gerçekleşmesi için otuz saniye yeterlidir ve herhangi bir zaman aşımını engellemiş olursunuz.
Zaman aşımına uğrayan bir yeniden deneme komut dosyası da ayarlayabilirsiniz. Bağlantı kurulmadığında yeniden deneme gerçekleşir. Bu seçenek, bağlantıyı tekrarlayarak zaman aşımını önlemenize yardımcı olur. Komut dosyanızda bir döngü durumu ile sonuçlanacaksınız. Döngüyü birkaç kez, örneğin 5 saniyelik bir zaman aşımı aralığıyla dört kez yapabilirsiniz.
Curl’de zaman aşımlarını nasıl önleyeceğiniz, önlemek istediğiniz zaman aşımına bağlıdır. Genel olarak, iki seçenek zaman aşımlarını önlemenin standart yollarıdır.
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.