cURL
logo
Ilustracja
Wynik curl -O
Pierwsze wydanie 1997[1]
Aktualna wersja stabilna 8.20.0
(29 kwietnia 2026) [±]
Język programowania C
System operacyjny wieloplatformowe
Rodzaj program komputerowy, biblioteka programistyczna
Licencja MIT
Strona internetowa

cURLprogram komputerowy oraz sieciowa biblioteka programistyczna (libcurl), napisane w języku C, działające po stronie klienta, z interfejsami dla ponad 30 innych języków. Umożliwia wysyłanie zapytań HTTP, w tym pobieranie z serwerów stron i plików, a także wysyłanie treści formularzy. Ułatwia tworzenie aplikacji korzystających z protokołu HTTP. Biblioteka cURL posiada ogromne możliwości, jej podstawowym zastosowaniem jest tworzenie sprzęgów w złożonych systemach opartych na technologiach Webowych.

cURL obsługuje protokoły DICT, FILE(inne języki), FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS(inne języki), Telnet oraz TFTP. Wspiera także mechanizmy takie jak: certyfikaty SSL, HTTP POST, HTTP PUT, upload FTP, wysyłanie formularzy HTTP, serwery proxy, HTTP cookie, uwierzytelnianie (nazwa użytkownika oraz hasło), wznawiania transferu plików, tunelowanie proxy HTTP oraz wiele innych.

Biblioteka cURL udostępniana jest na licencji MIT.

Bindy

edytuj

cURL jest dostępny dla następujących języków programowania i bibliotek: Ada95, Basic, C, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Falcon, Ferite, Gambas, GTK+, Haskell, Java, Lisp, Lua, Mono, .NET, Object Pascal, OCaml, Pascal, Perl, PHP, Postgres, Python, R, Rexx, Ruby, RPG, Scheme, S-Lang, Smalltalk, SP-Forth, SPL, Tcl, Visual Basic, Visual FoxPro, Q, wxWidgets, XBLite.

Platformy

edytuj

cURL jest wysoko wieloplatformowy, tak więc proces jego budowania oraz zasady działania są identyczne na wielu platformach m.in. Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS oraz innych.

Zależności

edytuj

cURL wykorzystuje zewnętrzne biblioteki, które wspierają jego funkcje. Możliwe jest zbudowanie libcurla bez nich, lecz wtedy będzie miał ograniczoną funkcjonalność[2].

Zależności
Biblioteka Wspierana funkcja
OpenSSL TLS (https)
zlib dekompresja
OpenLDAP LDAP
PolarSSL TLS (https)
heimdal uwierzytelnianie Kerberos oraz SPNEGO
MIT Kerberos uwierzytelnianie Kerberos oraz SPNEGO
nghttp2 http2
c-ares asynchroniczne żądania DNS (name resolves)
libidn kodowanie IDNA (do międzynarodowych nazw domen)
GnuTLS TLS (https)
NSS TLS (https)
yassl TLS (https)
libssh2 SCP oraz SFTP
libmetalink metalinki

Przykład

edytuj

Poniższe przykłady mają za zadanie połączyć się z adresem „http://pl.wikipedia.org/w/index.php?title=CURL&action=edit”.

Przykład użycia biblioteki cURL w PHP:

<?php

$hand = curl_init();

curl_setopt($hand, CURLOPT_URL, 'http://pl.wikipedia.org/w/index.php');
curl_setopt($hand, CURLOPT_POST, 1);
curl_setopt($hand, CURLOPT_POSTFIELDS, 'title=CURL&action=edit');
curl_exec($hand);

curl_close($hand);

?>

Przykład użycia w języku C.

#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://pl.wikipedia.org/w/index.php");
    curl_easy_setopt(curl, CURLOPT_POST, 1);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "title=CURL&action=edit");

    /* Wykonujemy żądanie, res będzie przechowywał kod błędu*/
    res = curl_easy_perform(curl);
    /* Sprawdzamy błędy */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* Zwalniamy zasoby */
    curl_easy_cleanup(curl);
  }
  return 0;
}

Przypisy

edytuj
  1. Historia cURL
  2. curl - External Dependencies [online], curl.haxx.se [dostęp 2017-11-22].

Linki zewnętrzne

edytuj

📚 Artikel Terkait di Wikipedia

HTTP cookie

Gdy jest zainstalowany serwer Proxy, nagłówki Set-Cookie nie powinny być przechowywane w pamięci proxy. Jeżeli serwer Proxy dostanie odpowiedź z nagłówkiem

Off-the-record messaging

proxy rozwijane przez projekt OTR obsługuje tylko protokół OSCAR, zatem może być używane z .Mac, ICQ, i AIM. Proxy OTR używa protokołów SOCKS5, HTTPS

Protokół komunikacyjny

DNS 53 FTP 21 HTTP 80 (HTTP Proxy używa zwykle portu 8080) HTTPS 443 (HTTP na TLS) IRC 6667 NNTP 119 POP3 110 SPOP3 995 (POP3 na TLS) SMTP 25 SSH 22 Telnet

Port protokołu

dodatkowe serwery, np. proxy, są najczęściej umieszczane na porcie 8080 110 POP3 119 NNTP 143 IMAP 161 SNMP 220 IMAP3 389 LDAP 443 HTTPS (HTTP na SSL) 514

Internet Channel

pobierania stron bezpośrednio z serwera HTTP lub HTTPS strony internetowej, zamiast poprzez sieć serwerów proxy, jak jest to w przeglądarce Opera Mini. Internet

HTTP

OCLC 943595667  (ang.). Ari Luotonen: Tunneling TCP based protocols through Web proxy servers. 1998. [dostęp 2009-07-29]. [zarchiwizowane z tego adresu (2009-08-11)]

Lightweight Directory Access Protocol

wymiana certyfikatów, z użyciem PROXY – wykorzystywane przez aplikację, która uwierzytelnia się na hasło użytkownika PROXY, a następnie działa w imieniu

Bo Sinn

2024-06-29]. [zarchiwizowane z tego adresu]. (ang.). Bo Sinn. Know Your Meme. https://www.youtube.com/watch?v=vds51oCHvGQ Milana Borodina: Что такое философия