Cách bắt đầu sử dụng Curl và lý do: giới thiệu thực hành

Cho dù đó là kiểm tra đầu ra của một API trước khi triển khai nó vào sản xuất hay chỉ đơn giản là tìm nạp phản hồi từ một trang web (ví dụ: để kiểm tra xem nó không bị lỗi), Curl thực tế có mặt khắp nơi.

Là một nhà khoa học dữ liệu, tôi đã phải sử dụng nó theo thời gian. Tuy nhiên, thường xuyên hơn không, tôi chỉ thay thế các tham số từ một lệnh curl được sao chép và dán đi xung quanh kênh Slack của nhóm tôi.

Tôi quyết định rằng tôi cần phải hiểu công cụ mạnh mẽ này hơn nếu tôi muốn sử dụng nó hết khả năng của nó, và bây giờ tôi ở đây để chia sẻ một số điều thú vị nhất mà tôi tìm thấy trong hướng dẫn uốn tóc này.

Nếu bạn có bất kỳ mẹo hoặc thủ thuật nào muốn thêm, vui lòng điền vào phần nhận xét, vì sự hiểu biết của tôi về công cụ này vẫn còn ở giai đoạn đầu.

Curl: Nó tốt để làm gì?

Curl là một công cụ dòng lệnh cho phép chúng ta thực hiện các yêu cầu HTTP từ shell. Nó cũng bao gồm nhiều giao thức khác, như FTP, mặc dù chúng vượt ra ngoài phạm vi của hướng dẫn này.

Tên của nó là viết tắt của “Client URL”, và nó được phát triển bởi nhà phát triển người Thụy Điển Daniel Stenberg. Nó là một dự án mã nguồn mở và bạn có thể tìm thấy mã của nó ở đây, trong trường hợp bạn muốn đóng góp.

Bạn có thể gọi nó từ thiết bị đầu cuối yêu thích của mình và nó thường được cài đặt sẵn trong hệ điều hành dựa trên Linux. Nếu không, nó thường có thể được tải xuống thông qua apt-get trên Linux và pha trên Mac.

Gọi một phương thức GET

Ở dạng cơ bản nhất của nó, một lệnh curl sẽ giống như sau:

curl //www.dataden.tech

Hành vi mặc định cho curl là gọi một phương thức HTTP GET trên URL đã cho. Bằng cách này, đầu ra của chương trình cho lệnh đó sẽ là toàn bộ phần thân của phản hồi HTTP (trong trường hợp này là HTML) mà trang web trả về trên GET, sẽ được viết như đã cho trên stdout .

Nếu bạn muốn đọc qua một phản hồi mà không cần rời khỏi trình bao, ít nhất tôi khuyên bạn nên chuyển nó thành một lệnh ít hơn , để có thể dễ dàng cuộn qua đầu ra.

Nhiều khi chúng tôi muốn chuyển nội dung của phản hồi vào một tệp. Điều này được thực hiện với đối số -o , như sau:

curl -o output.html www.dataden.tech

tương đương với:

curl www.dataden.tech > output.html

Theo tùy chọn, bạn có thể chỉ định URL của trang web mà bạn muốn gọi là curl bằng đối số a -s , như sau:

curl -s //www.dataden.tech

cho phép bạn thay đổi thứ tự các đối số của mình.

Bạn cũng có thể sử dụng –next để chỉ định nhiều hơn một URL, mặc dù tài liệu chính thức khuyên bạn nên gọi curl trên mỗi URL bằng một lệnh khác.

Thực hiện ĐĂNG đến một URL

Đôi khi bạn sẽ muốn kiểm tra xem một API có hoạt động chính xác hay không và thông thường điều đó sẽ yêu cầu gửi đối số tới nó.

Chúng tôi thường thực hiện việc này thông qua phương thức POST, chuyển một số JSON với tất cả các tham số bắt buộc. Có nhiều cách để làm điều này với tóc uốn.

Bạn có thể chuyển các giá trị đối số của mình như sau:

curl --data "name=John&surname=Doe" //www.dataden.tech

Hoặc giống như một JSON thông thường:

curl --data '{"name":"John","surname":"Doe"}' \//www.dataden.tech

Sử dụng –data tương đương với sử dụng -d và cả hai sẽ làm cho phương thức tự động thay đổi thành POST. Tuy nhiên, chúng ta cũng có thể sử dụng cờ -X ( –request ) để chỉ định phương thức chúng ta muốn gọi:

curl -X "POST" \-d "name=John&surname=Doe" //www.example.com

Tìm nạp các tiêu đề của trang web

Đôi khi chúng ta chỉ cần nhanh chóng xem liệu trang web có còn hoạt động hay không mà không thực sự muốn tải toàn bộ, có khả năng nặng, phản hồi. Những lần khác, tiêu đề lưu trữ các cấu hình quan trọng.

Hai trường hợp sử dụng đó cũng được giải quyết bằng curl. Chúng ta có thể sử dụng tham số –include ( -i ) để bao gồm các tiêu đề, và –head ( -tôi- tức là viết hoa 'i'-) để chỉ bao gồm các tiêu đề (gọi phương thức HEAD).

Đặt giá trị tác nhân người dùng của bạn

Bây giờ tôi đã trình bày những điều cơ bản, hãy để tôi hướng dẫn bạn qua một số điều thú vị nhất mà tôi thấy chúng ta có thể làm với uốn tóc.

Các user-agent lập luận cho phép bạn xác định các thiết bị và các phiên bản trình duyệt bạn đang sử dụng, trong trường hợp đó làm cho trang web render khác nhau.

Với điều này, bạn có thể xem phiên bản di động của một trang web từ máy tính xách tay của mình hoặc ngược lại.

Từ quan điểm bảo mật, điều này có thể đặt ra một số vấn đề. Cho đến giờ, tôi không biết việc giả vờ đang sử dụng một thiết bị khác (thậm chí không cần sử dụng máy ảo) dễ dàng như thế nào và khi làm việc trong Phòng chống gian lận, tôi có thể hiểu tại sao điều này có thể là một vấn đề.

Như đã nói, miễn là bạn đang sử dụng nó cho tốt, đây là một cách tuyệt vời để xem trang web trông như thế nào từ máy tính bảng, thiết bị di động hoặc máy tính xách tay.

Đây là một ví dụ, trực tiếp từ tài liệu chính thức (mặc dù danh sách tác nhân người dùng có sẵn trực tuyến).

curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" www.example.com

Định thời gian kết nối với Curl

Một lý do khác khiến tôi bắt đầu tìm hiểu thêm về curl là tôi muốn xem chính xác thời gian trang web của tôi phản hồi là bao lâu.

Mặc dù tài liệu cơ bản không đề cập đến nó, nhưng một chút googling đã khám phá ra lệnh này, mà tôi thấy rất hữu ích:

curl -w "%{time_total}\n" -o /dev/null -s www.example.com

Điều này sẽ chỉ xuất ra tổng thời gian cần thiết để tìm nạp phản hồi từ miền đã cho.

Nói một cách tổng quát hơn, đối số -w (–write-out) nhận một chuỗi định dạng đặc biệt và điền vào các từ khóa dành riêng với các thuộc tính khác nhau của phản hồi, theo cách được định dạng. Tất cả các từ khóa và giá trị tương ứng của chúng đều có sẵn trong trang người của lệnh.

đọc thêm

Dưới đây là một số liên kết bạn có thể thấy thú vị, trong trường hợp bạn muốn tìm hiểu thêm về chủ đề rộng lớn này:

  • Danh sách tác nhân người dùng Một tập hợp các đối số tác nhân người dùng cho các thiết bị và trình duyệt khác nhau.
  • Tài liệu chính thức của Curl.
  • Trang chủ của Curl.

Để kết luận

Tôi hy vọng bạn thấy phần giới thiệu này hữu ích và bạn để lại hướng dẫn này biết ít nhất những điều cơ bản về lệnh tiện lợi này.

Như tôi đã nói trước đây, tôi vẫn đang học và sẽ đánh giá cao bất kỳ phần kiến ​​thức thú vị nào khác về việc sử dụng chương trình. Điều tương tự cũng xảy ra với bất kỳ phản hồi nào về những gì tôi đã viết cho đến nay.

Nếu tôi đã mắc bất kỳ lỗi nào hoặc có bất kỳ phần nào bạn nghĩ rằng tôi có thể nói rõ hơn, vui lòng cho tôi biết.

Tôi hy vọng sẽ gặp lại bạn sớm, chúc bạn viết mã vui vẻ!

Theo dõi tôi trên Phương tiện và Twitter để cập nhật các hướng dẫn, thủ thuật và bài viết của tôi. Cân nhắc chia sẻ bài viết này với một người bạn của nhà phát triển web nếu bạn thích nó (hoặc như một cách tích cực thụ động để bảo họ học cách uốn tóc).

Được xuất bản lần đầu tại www.dataden.tech vào ngày 7 tháng 10 năm 2018.