簡體   English   中英

curl/curl.h、libcurl、libcurl4-openssl-dev、libcurl4-nss-dev 庫之間的區別?

[英]Difference between curl/curl.h, libcurl, libcurl4-openssl-dev, libcurl4-nss-dev libraries?

我有以下 curl 標頭,我仍然可以安裝上面提到的 libcurl4 包-

kafka@metamorphosis:~$ ll /usr/include/curl/
total 200
drwxr-xr-x  2 root root  4096 Jan 16 13:29 ./
drwxr-xr-x 51 root root 20480 Jan 16 13:29 ../
-rw-r--r--  1 root root  7303 Dec 18 01:11 curlbuild.h
-rw-r--r--  1 root root 83928 Dec 18 01:11 curl.h
-rw-r--r--  1 root root  8934 Dec 18 01:11 curlrules.h
-rw-r--r--  1 root root  2741 Dec 18 01:11 curlver.h
-rw-r--r--  1 root root  3472 Dec 18 01:11 easy.h
-rw-r--r--  1 root root  2790 Dec 18 01:11 mprintf.h
-rw-r--r--  1 root root 13836 Dec 18 01:11 multi.h
-rw-r--r--  1 root root  1330 Dec 18 01:11 stdcheaders.h
-rw-r--r--  1 root root 36918 Dec 18 01:11 typecheck-gcc.h

libcurl4-openssl-devlibcurl4-nss-dev彼此之間以及與這些 curl.h 文件有何不同?

在 ubuntu 中使用 apt-get 安裝這兩個軟件包后,我注意到以下文件-

/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.3
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4.3.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.la
/usr/lib/x86_64-linux-gnu/libcurl.so.3
/usr/lib/x86_64-linux-gnu/libcurl.a
/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so
/usr/lib/x86_64-linux-gnu/pkgconfig/libcurl.pc

現在,如果我有一個像 - #include<curl/curl.h>這樣的程序,我該如何編譯它?

gcc -L /usr/include/curl/ -lcurl nginx-isolated.c似乎不起作用。

不同的 libcurl4- * -dev 包是為使用不同的 TLS 后端而構建的 libcurl。 它們仍然提供(幾乎)相同的 API。 它們是相互排斥的,無論您安裝這些軟件包中的哪一個,您都可以使用“-lcurl”與 libcurl 鏈接。

curl/curl.h 是一個頭文件,無論您使用哪個 TLS 后端都是相同的。

libcurl 是庫的名稱。

當您使用 HTTPS、FTPS 或其他使用 TLS 的服務器使用存儲中存在的 CA 簽名的證書進行通信時,您可以確定遠程服務器確實是它聲稱的那樣。 這樣您就可以驗證信任站點。

LibCurl 具有三種風格的 TLS 后端。

  • 使用 NSS 進行證書驗證
  • 使用 OpenSSL 進行證書驗證
  • 使用 GnuTLS 進行證書驗證

他們三個是用於建立安全鏈接和驗證信任 CA 證書的庫,但每個庫都有自己的特點、優點和缺點。

OpenSSL是用於傳輸層安全性 (TLS) 和安全套接字層 (SSL) 協議的強大、商業級和功能齊全的工具包。 它也是一個通用的密碼學庫。

GnuTLS是一個安全通信庫,實現了 SSL、TLS 和 DTLS 協議和圍繞它們的技術。 它提供了一個簡單的 C 語言應用程序編程接口 (API) 來訪問安全通信協議以及用於解析和編寫 X.509、PKCS #12 和其他所需結構的 API。

網絡安全服務(NSS)是一組庫,旨在支持啟用安全的客戶端和服務器應用程序的跨平台開發。 使用 NSS 構建的應用程序可以支持 SSL v3、TLS、PKCS #5、PKCS #7、PKCS #11、PKCS #12、S/MIME、X.509 v3 證書和其他安全標准。

非常重要的一點是,在編程時您必須選擇一個單獨的庫來使用,因為不可能將它們組合起來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM