1. 1. Her Yönüyle curl
  2. 2. Nasıl okunmalı
  3. 3. cURL projesi
    ❱
    1. 3.1. Nasıl başladı
    2. 3.2. İsim
    3. 3.3. curl ne yapar?
    4. 3.4. Proje iletişimi
    5. 3.5. E-posta listesi görgü kuralları
    6. 3.6. E-posta listeleri
    7. 3.7. Hata bildirme
    8. 3.8. Ticari destek
    9. 3.9. Sürümler
    10. 3.10. Güvenlik
    11. 3.11. Güven
    12. 3.12. Davranış Kuralları (Code of Conduct)
    13. 3.13. Geliştirme
    14. 3.14. Geliştirme ekibi
    15. 3.15. curl kullanıcıları
    16. 3.16. Gelecek
  4. 4. Ağ ve protokoller
    ❱
    1. 4.1. Basitleştirilmiş ağ oluşturma
    2. 4.2. Protokoller
    3. 4.3. curl protokolleri
    4. 4.4. HTTP temelleri
  5. 5. curl ve libcurl kurulumu
    ❱
    1. 5.1. Linux
    2. 5.2. Windows
      ❱
      1. 5.2.1. MSYS2
      2. 5.2.2. vcpkg
    3. 5.3. macOS
    4. 5.4. Konteyner (Container)
  6. 6. Kaynak kodu
    ❱
    1. 6.1. Açık Kaynak (Open Source)
      ❱
      1. 6.1.1. Lisans
      2. 6.1.2. Telif Hakkı
    2. 6.2. Kod düzeni
    3. 6.3. Derleme seçeneklerini yönetme
    4. 6.4. Kod stili
    5. 6.5. Katkıda bulunma
    6. 6.6. Güvenlik açıklarını bildirme
    7. 6.7. Web sitesi
  7. 7. curl ve libcurl derleme
    ❱
    1. 7.1. Autotools
    2. 7.2. CMake
    3. 7.3. Ayrı kurulum
    4. 7.4. Windows
    5. 7.5. Bağımlılıklar
    6. 7.6. TLS kütüphaneleri
      ❱
      1. 7.6.1. BoringSSL
  8. 8. Komut satırı kavramları
    ❱
    1. 8.1. Farklılıklar
    2. 8.2. Komut satırı seçenekleri
      ❱
      1. 8.2.1. Kısa seçenekler
      2. 8.2.2. Uzun seçenekler
      3. 8.2.3. Seçeneklere verilen argümanlar
      4. 8.2.4. Negatif seçenekler
    3. 8.3. Yardım
    4. 8.4. Sürüme bağlı seçenekler
    5. 8.5. URL'ler
      ❱
      1. 8.5.1. Şema (Scheme)
      2. 8.5.2. İsim ve parola
      3. 8.5.3. Ana bilgisayar (Host)
      4. 8.5.4. Port numarası
      5. 8.5.5. Yol (Path)
      6. 8.5.6. Sorgu (Query)
      7. 8.5.7. FTP türü
      8. 8.5.8. Bölüm (Fragment)
      9. 8.5.9. Tarayıcılar
      10. 8.5.10. Birçok seçenek ve URL
      11. 8.5.11. URL globbing
      12. 8.5.12. Bağlantı yeniden kullanımı
      13. 8.5.13. Paralel transferler
      14. 8.5.14. trurl
    6. 8.6. Yapılandırma dosyası (Config file)
    7. 8.7. Değişkenler
    8. 8.8. Parolalar
    9. 8.9. İlerleme göstergesi
    10. 8.10. Sürüm
    11. 8.11. Çıkış kodu (Exit code)
    12. 8.12. curl olarak kopyala
  9. 9. Komut satırı transferleri
    ❱
    1. 9.1. Ayrıntılı (Verbose)
      ❱
      1. 9.1.1. İzleme seçenekleri (Trace options)
      2. 9.1.2. Yazdır (Write out)
    2. 9.2. İndirmeler (Downloads)
      ❱
      1. 9.2.1. İndirme nedir?
      2. 9.2.2. İndirmeleri saklama
      3. 9.2.3. URL ile adlandırılan bir dosyaya indirme
      4. 9.2.4. Sunucudan gelen hedef dosya adını kullanma
      5. 9.2.5. HTML ve karakter setleri
      6. 9.2.6. Kabuk yönlendirmeleri (Shell redirects)
      7. 9.2.7. Çoklu indirmeler
      8. 9.2.8. Tarayıcım başka bir şey gösteriyor
      9. 9.2.9. Maksimum dosya boyutu
      10. 9.2.10. Dosya sisteminde meta verileri saklama
      11. 9.2.11. Ham (Raw)
      12. 9.2.12. Yeniden deneme (Retry)
      13. 9.2.13. Devam ettirme ve aralıklar
    3. 9.3. Yüklemeler (Uploads)
    4. 9.4. Transfer kontrolleri
      ❱
      1. 9.4.1. Yavaş transferleri durdurma
      2. 9.4.2. Hız sınırlama (Rate limiting)
      3. 9.4.3. İstek hızı sınırlama
      4. 9.4.4. Sıkıştırma
      5. 9.4.5. Zaten yapılmışsa indirmeyi atla
    5. 9.5. Bağlantılar (Connections)
      ❱
      1. 9.5.1. Kurulum
      2. 9.5.2. İsim çözümleme hileleri
      3. 9.5.3. Bağlantı zaman aşımı
      4. 9.5.4. Mutlu Gözler (Happy Eyeballs)
      5. 9.5.5. Ağ arayüzü
      6. 9.5.6. Yerel port numarası
      7. 9.5.7. Canlı tutma (Keep alive)
    6. 9.6. Zaman aşımları (Timeouts)
    7. 9.7. .netrc
    8. 9.8. Vekil Sunucular (Proxies)
      ❱
      1. 9.8.1. Vekil sunucunuzu keşfedin
      2. 9.8.2. PAC
      3. 9.8.3. Esir portallar (Captive portals)
      4. 9.8.4. Vekil sunucu türü
      5. 9.8.5. HTTP vekil sunucusu
      6. 9.8.6. SOCKS vekil sunucusu
      7. 9.8.7. MITM vekil sunucusu
      8. 9.8.8. Vekil sunucu kimlik doğrulaması
      9. 9.8.9. HTTPS vekil sunucusu
      10. 9.8.10. Vekil sunucu ortam değişkenleri
      11. 9.8.11. Vekil sunucu başlıkları
      12. 9.8.12. haproxy
    9. 9.9. TLS
      ❱
      1. 9.9.1. Şifreler (Ciphers)
      2. 9.9.2. TLS'yi etkinleştirme
      3. 9.9.3. TLS sürümleri
      4. 9.9.4. Sunucu sertifikalarını doğrulama
      5. 9.9.5. Sertifika sabitleme (Certificate pinning)
      6. 9.9.6. OCSP zımbalama (OCSP stapling)
      7. 9.9.7. İstemci sertifikaları
      8. 9.9.8. TLS kimlik doğrulaması
      9. 9.9.9. TLS arka uçları (backends)
      10. 9.9.10. SSLKEYLOGFILE
    10. 9.10. SCP ve SFTP
      ❱
      1. 9.10.1. URL'ler (URLs)
      2. 9.10.2. Kimlik Doğrulama (Authentication)
      3. 9.10.3. Bilinen ana bilgisayarlar (Known hosts)
    11. 9.11. E-posta okuma
    12. 9.12. E-posta gönderme
    13. 9.13. DICT
    14. 9.14. IPFS
    15. 9.15. MQTT
    16. 9.16. TELNET
    17. 9.17. TFTP
  10. 10. Komut satırı HTTP
    ❱
    1. 10.1. Yöntem (Method)
    2. 10.2. Yanıtlar (Responses)
    3. 10.3. Kimlik Doğrulama
    4. 10.4. HTTP sürümleri
      ❱
      1. 10.4.1. HTTP/0.9
      2. 10.4.2. HTTP/2
      3. 10.4.3. HTTP/3
    5. 10.5. HTTP POST
      ❱
      1. 10.5.1. Basit POST
      2. 10.5.2. Content-Type
      3. 10.5.3. İkili (Binary) gönderme
      4. 10.5.4. JSON
      5. 10.5.5. URL kodlanmış veri
      6. 10.5.6. GET'e dönüştürme
      7. 10.5.7. Expect 100-continue
      8. 10.5.8. Parçalı (Chunked) kodlanmış POST'lar
      9. 10.5.9. Gizli form alanları
      10. 10.5.10. Bir tarayıcının ne gönderdiğini anlama
      11. 10.5.11. JavaScript ve formlar
      12. 10.5.12. Multipart form gönderileri
      13. 10.5.13. -d vs -F
    6. 10.6. HTTP PUT
    7. 10.7. Yönlendirmeler (Redirects)
    8. 10.8. HTTP'nizi özelleştirme
      ❱
      1. 10.8.1. İstek yöntemi (Request method)
      2. 10.8.2. İstek hedefi (Request target)
      3. 10.8.3. Parça (Fragment)
      4. 10.8.4. Başlıkları özelleştirme
      5. 10.8.5. Referer
      6. 10.8.6. User-agent
      7. 10.8.7. Aralıklar (Ranges)
      8. 10.8.8. Koşullular (Conditionals)
      9. 10.8.9. Sıkıştırma (Compression)
    9. 10.9. Çerezler (Cookies)
      ❱
      1. 10.9.1. Çerez motoru
      2. 10.9.2. Çerezleri dosyadan okuma
      3. 10.9.3. Çerezleri dosyaya yazma
      4. 10.9.4. Yeni çerez oturumu
      5. 10.9.5. Çerez dosya formatı
    10. 10.10. HTTPS
      ❱
      1. 10.10.1. HSTS
      2. 10.10.2. Alternatif Hizmetler (Alternative Services)
    11. 10.11. Tarayıcı benzeri görevleri senaryolaştırma (Scripting browser-like tasks)
  11. 11. Komut satırı FTP
    ❱
    1. 11.1. FTP Dizin listeleme
    2. 11.2. FTP ile yükleme
    3. 11.3. Özel FTP komutları
    4. 11.4. İki bağlantı
    5. 11.5. Dizin dolaşma
    6. 11.6. FTPS
  12. 12. libcurl
    ❱
    1. 12.1. Başlık dosyaları (Header files)
    2. 12.2. Küresel başlatma (Global initialization)
    3. 12.3. API uyumluluğu
    4. 12.4. --libcurl
    5. 12.5. çoklu iş parçacığı (multi-threading)
    6. 12.6. CURLcode dönüş kodları
    7. 12.7. Ayrıntılı operasyonlar
    8. 12.8. Önbellekler
    9. 12.9. Performans
    10. 12.10. C++ programcıları için
  13. 13. libcurl transferleri
    ❱
    1. 13.1. Easy handle
    2. 13.2. curl easy seçenekleri
      ❱
      1. 13.2.1. Sayısal seçenekleri ayarla
      2. 13.2.2. Dize (string) seçeneklerini ayarla
      3. 13.2.3. TLS seçenekleri
      4. 13.2.4. Tüm seçenekler
      5. 13.2.5. Seçenek bilgisini al
    3. 13.3. Transferleri yürütme (Drive transfers)
      ❱
      1. 13.3.1. Easy ile yürütme
      2. 13.3.2. Multi ile yürütme
      3. 13.3.3. multi_socket ile yürütme
    4. 13.4. Geri çağırımlar (Callbacks)
      ❱
      1. 13.4.1. Veri yazma (Write data)
      2. 13.4.2. Veri okuma (Read data)
      3. 13.4.3. İlerleme bilgisi (Progress information)
      4. 13.4.4. Başlık verileri (Header data)
      5. 13.4.5. Hata ayıklama (Debug)
      6. 13.4.6. sockopt
      7. 13.4.7. SSL bağlamı (SSL context)
      8. 13.4.8. Arama ve ioctl (Seek and ioctl)
      9. 13.4.9. Ağ veri dönüşümü
      10. 13.4.10. Soket açma ve kapama (Opensocket and closesocket)
      11. 13.4.11. SSH anahtarı
      12. 13.4.12. RTSP serpiştirilmiş veriler
      13. 13.4.13. FTP joker karakter eşleştirme
      14. 13.4.14. Çözümleyici başlatma
      15. 13.4.15. Sondaki başlıkları (Trailers) gönderme
      16. 13.4.16. HSTS
      17. 13.4.17. Ön koşul (Prereq)
    5. 13.5. Bağlantı kontrolü
      ❱
      1. 13.5.1. libcurl nasıl bağlanır (How libcurl connects)
      2. 13.5.2. Yerel adres ve port numarası
      3. 13.5.3. Bağlantı yeniden kullanımı (Connection reuse)
      4. 13.5.4. Canlı tutma (Keep alive)
      5. 13.5.5. Ad çözme (Name resolving)
      6. 13.5.6. Vekil sunucular (Proxies)
    6. 13.6. Transfer kontrolü
      ❱
      1. 13.6.1. Durdurma (Stop)
      2. 13.6.2. Yavaş transferleri durdurma
      3. 13.6.3. Hız sınırı (Rate limit)
      4. 13.6.4. İlerleme ölçer (Progress meter)
      5. 13.6.5. İlerleme geri çağırımı
    7. 13.7. Kimlik Doğrulama
    8. 13.8. Temizleme (Cleanup)
    9. 13.9. Transfer sonrası bilgi
  14. 14. libcurl HTTP
    ❱
    1. 14.1. Yanıtlar (Responses)
    2. 14.2. İstekler (Requests)
    3. 14.3. Sürümler (Versions)
    4. 14.4. Aralıklar (Ranges)
    5. 14.5. Kimlik Doğrulama
    6. 14.6. Çerezler (Cookies)
    7. 14.7. İndirme (Download)
    8. 14.8. Yükleme (Upload)
    9. 14.9. Çoğullama (Multiplexing)
    10. 14.10. HSTS
    11. 14.11. alt-svc
  15. 15. libcurl yardımcıları (helpers)
    ❱
    1. 15.1. Handle'lar arasında veri paylaşımı
    2. 15.2. URL API
      ❱
      1. 15.2.1. Dosyaları dahil et (Include files)
      2. 15.2.2. Oluştur, temizle, çoğalt (Create, cleanup, duplicate)
      3. 15.2.3. Bir URL'yi ayrıştır (Parse a URL)
      4. 15.2.4. URL'ye yönlendir (Redirect to URL)
      5. 15.2.5. Bir URL al (Get a URL)
      6. 15.2.6. URL parçalarını al (Get URL parts)
      7. 15.2.7. URL parçalarını ayarla (Set URL parts)
      8. 15.2.8. Sorguya ekle (Append to the query)
      9. 15.2.9. CURLOPT_CURLU
    3. 15.3. WebSocket
      ❱
      1. 15.3.1. Destek (Support)
      2. 15.3.2. URL'ler (URLs)
      3. 15.3.3. Kavram (Concept)
      4. 15.3.4. Seçenekler (Options)
      5. 15.3.5. Oku (Read)
      6. 15.3.6. Meta
      7. 15.3.7. Yaz (Write)
    4. 15.4. Başlıklar (Headers) API
      ❱
      1. 15.4.1. Başlık yapısı (Header struct)
      2. 15.4.2. Bir başlık al (Get a header)
      3. 15.4.3. Başlıklar üzerinde yineleme (Iterate over headers)
  16. 16. libcurl örnekleri (examples)
    ❱
    1. 16.1. Basit bir HTTP sayfası al (Get a simple HTTP page)
    2. 16.2. Belleğe bir yanıt al (Get a response into memory)
    3. 16.3. HTTP üzerinden bir giriş formu gönder (Submit a login form over HTTP)
    4. 16.4. Bir FTP dizin listesi al (Get an FTP directory listing)
    5. 16.5. Bloklamayan HTTP form-post (Non-blocking HTTP form-post)
  17. 17. libcurl bağlamaları (bindings)
  18. 18. libcurl iç yapısı (internals)
    ❱
    1. 18.1. Easy handle'lar ve bağlantılar (Easy handles and connections)
    2. 18.2. Her şey multi'dir (Everything is multi)
    3. 18.3. Durum makineleri (State machines)
    4. 18.4. Protokol işleyici (Protocol handler)
    5. 18.5. Arka uçlar (Backends)
    6. 18.6. Önbellekler ve durum (Caches and state)
    7. 18.7. Zaman aşımları (Timeouts)
    8. 18.8. Windows vs Unix
    9. 18.9. Bellek hata ayıklama (Memory debugging)
    10. 18.10. İçerik Kodlaması (Content Encoding)
    11. 18.11. Yapılar (Structs)
    12. 18.12. Ana bilgisayar adlarını çözümleme (Resolving hostnames)
    13. 18.13. Testler (Tests)
      ❱
      1. 18.13.1. Test dosya formatı
      2. 18.13.2. Testleri derleme (Build tests)
      3. 18.13.3. Testleri çalıştırma (Run tests)
      4. 18.13.4. Hata ayıklama derlemeleri (Debug builds)
      5. 18.13.5. Test sunucuları (Test servers)
      6. 18.13.6. curl testleri
      7. 18.13.7. libcurl testleri
      8. 18.13.8. Birim testleri (Unit tests)
      9. 18.13.9. Valgrind
      10. 18.13.10. Sürekli Entegrasyon (Continuous Integration)
      11. 18.13.11. Otomatik derlemeler (Autobuilds)
      12. 18.13.12. İşkence (Torture)
  19. 19. Dizin

Her Yönüyle curl

libcurl transferleri

Bu bölümde, libcurl ile İnternet transferlerinin nasıl yapılacağına dair adımları inceliyoruz. Temel işlev.

  • Easy handle
  • curl easy seçenekleri
  • Transferleri yürütme (Drive)
  • Geri çağırımlar (Callbacks)
  • Bağlantı kontrolü
  • Transfer kontrolü
  • Kimlik Doğrulama
  • Temizleme
  • Transfer sonrası bilgi