paint-brush
Giới thiệu về cURL: Ứng dụng khách HTTP phổ biến nhấttừ tác giả@brightdata
Bài viết mới

Giới thiệu về cURL: Ứng dụng khách HTTP phổ biến nhất

từ tác giả Bright Data6m2024/07/29
Read on Terminal Reader

dài quá đọc không nổi

CURL là một công cụ dòng lệnh và một thư viện có tên libcurl, tự hào có các tính năng như hỗ trợ SSL, tạo đường hầm proxy, cấu hình tiêu đề và quản lý cookie. cURL được cài đặt sẵn trên Linux, macOS và Windows, khiến nó trở thành công cụ hỗ trợ cho các yêu cầu web trong dòng lệnh.
featured image - Giới thiệu về cURL: Ứng dụng khách HTTP phổ biến nhất
Bright Data HackerNoon profile picture
0-item

Hãy giữ chặt bàn phím của bạn, các nhà phát triển web! Nếu bộ công cụ của bạn không có cURL, bạn có thể đang bỏ lỡ một trong những công cụ mạnh mẽ nhất trong trò chơi. cURL không chỉ là ứng dụng khách HTTP dựa trên CLI—mà còn là ứng dụng khách HTTP dòng lệnh!


Hãy tham gia cùng chúng tôi trong cuộc hành trình vào trung tâm của cURL, nơi chúng tôi sẽ khám phá những bí ẩn của nó, khám phá các khả năng của nó và trang bị cho bạn kiến thức để sử dụng nó như một người chuyên nghiệp. Bạn đã sẵn sàng giải phóng sức mạnh thực sự của cURL chưa? Hãy lăn đi!

cURL là gì?

cURL , viết tắt của “Client for URLs”, là một dự án phần mềm bao gồm một công cụ dòng lệnh và một thư viện có tên libcurl. Bộ đôi này chuyên truyền dữ liệu với cú pháp URL trên nhiều giao thức mạng. libcurl cũng tự hào có các tính năng như hỗ trợ SSL, đường hầm proxy, cấu hình tiêu đề và quản lý cookie.


Đi sâu vào danh sách đầy đủ các giao thức được libcurl hỗ trợ có cảm giác giống như điều hướng một món súp bảng chữ cái kỹ thuật số. Điều đó bao gồm HTTP, HTTPS, FTP, SFTP, IMAP, POP3, SMTP, MQTT và hàng tá thứ khác. Danh sách này dài đến mức bạn có thể chưa bao giờ nghe nói đến một số trong số đó—hãy yên tâm, bạn không đơn độc nếu trường hợp đó xảy ra! 😜


Tại sao cURL lại đạt được vị thế ngôi sao nhạc rock trong số các nhà phát triển? Đó là tất cả về sức mạnh đa nền tảng của nó! Với các liên kết libcurl có sẵn trong rất nhiều ngôn ngữ lập trình—như PHP, Python và Java—cURL tích hợp liền mạch vào các nhóm công nghệ đa dạng. Sự phổ biến nằm ở tính phổ biến của nó. cURL được cài đặt sẵn trên Linux, macOS và Windows, khiến nó trở thành công cụ phù hợp cho các yêu cầu web trong thiết bị đầu cuối trên bất kỳ máy nào ngay lập tức.


Cho dù truy xuất nội dung web, kiểm tra API hay tải tệp lên, cURL vẫn luôn là một công cụ thiết yếu trong bộ công cụ của bất kỳ nhà phát triển web nào. Không gì có thể sánh được với tính linh hoạt và hiệu quả vô song của nó. 🚀

cURL đang hoạt động: Cú pháp và ví dụ

Vậy là bạn đã có cURL trong bộ công cụ của mình nhưng làm cách nào để sử dụng nó? Đơn giản! Khởi chạy một lệnh trong terminal của bạn theo cú pháp sau:

 curl [options] [URL]

URL là đích—máy chủ hoặc tài nguyên trực tuyến mà bạn đang nhắm mục tiêu, trong khi một số tùy chọn cURL phổ biến là:

  • -X hoặc --request : Để đặt phương thức HTTP sẽ sử dụng.

  • -d hoặc --data : Để thêm dữ liệu vào nội dung yêu cầu của bạn.

  • -b hoặc --cookie : Để quản lý cookie theo yêu cầu của bạn.

  • -H hoặc --header : Để thêm tiêu đề tùy chỉnh vào yêu cầu của bạn. Đối với nhiều tiêu đề, hãy lặp lại các tùy chọn nhiều lần. GET theo mặc định.

  • -v hoặc --verbose : Để in thông tin chi tiết để gỡ lỗi.


Để tìm hiểu tất cả các tùy chọn có sẵn, hãy xem tài liệu 🔎


⚠️ Lưu ý 1 : Hãy cẩn thận, các tùy chọn curl dòng lệnh rất nhạy cảm. Như vậy, -x-X có hai nghĩa khác nhau.


⚠️ Lưu ý 2 : Trong PowerShell, curl là bí danh của Invoke-Request . Để sử dụng cURL trên Windows, hãy viết curl.exe thay vì curl .


Bây giờ, hãy sẵn sàng xem cú pháp cURL hoạt động trong các ví dụ thực tế được phân loại theo phương thức HTTP !

LẤY

Dưới đây là cách sử dụng cURL để lấy HTML nguồn của trang web mục tiêu:

 curl "https://example.com/"


Dưới mui xe, cURL sẽ thực hiện yêu cầu GET, tìm nạp tài liệu HTML được liên kết với trang web https://example.com/ và in nó trong thiết bị đầu cuối.


Bạn vừa lấy thông tin bằng một lệnh duy nhất. Thật ấn tượng phải không? 🔥

BƯU KIỆN

Ví dụ POST cURL bên dưới gọi điểm cuối https://api.example.com/users với dữ liệu JSON cần thiết để tạo người dùng mới:

 curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' "https://api.example.com/users"


Lưu ý tùy chọn -X để chỉ định phương thức HTTP mong muốn. Cũng chú ý đến việc sử dụng tùy chọn -H để đặt tiêu đề Content-Type và tùy chọn -d để chỉ định dữ liệu JSON thô trong một chuỗi. Hãy xem hướng dẫn yêu cầu POST cURL chuyên dụng!

ĐẶT

Các cuộc gọi PUT cURL tuân theo cú pháp sau:

 curl -X PUT -d "name=Amazon%20Scraping&description=Automated%20data%20extraction%20for%20retrieving%20price%20data&status=completed" "https://api.example.com/projects/12"


Yêu cầu HTTP sẽ cập nhật dự án với ID 12 bằng cách sử dụng dữ liệu được cung cấp. Trong ví dụ này, dữ liệu trong nội dung yêu cầu có định dạng application/x-www-form-urlencoded , trái ngược với nội dung JSON được sử dụng trong lệnh gọi cURL POST ở trên. Tính linh hoạt trong các định dạng dữ liệu này cho thấy khả năng thích ứng của cURL đối với các trường hợp sử dụng khác nhau.

Bạn muốn thực hiện yêu cầu PUT trong cURL để cập nhật một trường duy nhất của tài nguyên trực tuyến? Đây là cách bạn có thể làm điều đó:

 curl -X PATCH -d "status=failed" "https://api.example.com/projects/12"

XÓA BỎ

cURL cho phép bạn thực hiện yêu cầu DELETE và xóa sự tồn tại của các thực thể hiện có, như sau:

 curl -X DELETE https://api.example.com/user/431


Sau lệnh gọi API này, người dùng có ID 431 sẽ không còn tồn tại!

Tùy chọn cURL nâng cao

cURL cung cấp vô số tùy chọn, mỗi tùy chọn cung cấp một khả năng riêng cho các trường hợp sử dụng phức tạp. Khi bạn điều hướng qua vũ trụ đó, một số tùy chọn nâng cao sẽ nổi bật. Dưới đây là 10 tùy chọn cURL nâng cao hữu ích nhất:


  • -o hoặc --output : Để ghi đầu ra vào tệp cục bộ được chỉ định thay vì<stdoud> .
  • -O hoặc --remote-name : Để lưu đầu ra vào một tệp từ xa.
  • -i hoặc --include : Để đưa các tiêu đề HTTP phản hồi vào đầu ra.
  • -u hoặc --user : Để xác thực bằng tên người dùng và mật khẩu ở định dạng user:password .
  • -L hoặc --location : Để thực hiện theo các chuyển hướng khi máy chủ phản hồi bằng mã phản hồi 3XX .
  • -e hoặc --referer : Để gửi thông tin “Trang giới thiệu” đến máy chủ HTTP.
  • -x hoặc --proxy : Để chỉ định URL của máy chủ proxy để thực hiện yêu cầu thông qua. Để biết thêm thông tin, hãy đọc hướng dẫn của chúng tôi về cách sử dụng cURL với proxy hoặc xem video bên dưới.
  • --rate : Để chỉ định tần suất truyền tối đa mà bạn muốn cURL tôn trọng để tránh kích hoạt các biện pháp giới hạn tốc độ.
  • --data-binary : Để gửi dữ liệu đến máy chủ chính xác như được chỉ định mà không cần xử lý thêm gì.
  • --compressed : Để yêu cầu phản hồi nén và tự động giải nén nội dung phản hồi.


Việc nắm vững các tùy chọn này cho phép bạn sử dụng cURL một cách khéo léo chưa từng có trong lĩnh vực tương tác web ngày càng phát triển. 🌐

Cách tận dụng tối đa cURL

cURL là một công cụ mạnh mẽ cho các yêu cầu web, nhưng thiết lập mặc định của nó khiến nó dễ bị tấn công bởi các biện pháp chống bot. Ví dụ: hãy xem xét tiêu đề User-Agent mặc định của nó:

 curl/XYZ


Xem cách thay đổi giá trị tác nhân người dùng cURL .


Bây giờ, hãy so sánh điều đó với tác nhân người dùng mới nhất của Chrome:

 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Đó là một chuỗi hoàn toàn khác!


Sử dụng cURL mà không ghi đè tiêu đề đó cũng giống như hét lên với máy chủ mục tiêu, “Nhìn tôi này! Tôi là một yêu cầu robot tự động, không cần trình duyệt!”

Không có gì lạ, điều đó có thể kích hoạt cơ chế phòng thủ 😅. Ngoài ra, đừng quên rằng cURL chỉ là một ứng dụng khách HTTP. Do đó, nó không thể xử lý các trang dựa vào JavaScript để hiển thị hoặc truy xuất dữ liệu.


👎Thật tệ nếu bạn muốn sử dụng cURL để quét web !👎


Vậy bạn có nên ngừng sử dụng cURL không? Không có gì! Bạn chỉ cần trang bị cho nó những công cụ phù hợp! Để khai thác toàn bộ tiềm năng của cURL và giải quyết các hạn chế của nó, hãy tích hợp nó với:


  • Proxy web : Để có được IP mới, được định vị địa lý, đáng tin cậy theo từng yêu cầu; hoặc một
  • Công cụ mở khóa web : Để truy cập số liệu thống kê công khai hoặc các trang web phụ thuộc vào JavaScript đồng thời bỏ qua các công nghệ phát hiện bot.


Dù quyết định của bạn là gì, Bright Data cũng sẽ hỗ trợ bạn! Với một trong những mạng proxy lớn nhất và đáng tin cậy nhất trên thị trường , Bight Data có hàng triệu máy chủ proxy trải rộng khắp thế giới. Ngoài ra, giải pháp Web unlocker của nó cho phép bạn truy cập bất kỳ trang web công cộng nào thông qua cURL, bất kể mức độ bảo vệ bot của nó.

Phần kết luận

cURL, ngôi sao nhạc rock của máy khách HTTP, là công cụ phù hợp dành cho các nhà phát triển thực hiện yêu cầu web trong thiết bị đầu cuối. Tại đây, bạn hiện đã thành thạo cách sử dụng nó bằng các phương thức HTTP phổ biến và khám phá các tùy chọn đa dạng của nó. Đó là một công cụ mạnh mẽ nhưng hãy thực tế nhé—hầu hết các trang web đều có thể phát hiện ra rằng bạn đang liên hệ với họ qua cURL.


Đừng sợ! Thuốc giải độc rất đơn giản: tranh thủ sự trợ giúp của proxy web hoặc để có kết quả tối ưu, hãy sử dụng giải pháp Trình mở khóa web từ Dữ liệu sáng . Hãy tham gia cùng chúng tôi trong sứ mệnh dân chủ hóa Internet, giúp mọi người, mọi nơi có thể truy cập Internet—thậm chí thông qua cURL hùng mạnh!


Cho đến lần tiếp theo, hãy tiếp tục khám phá Web một cách tự do!