A Curl használatának megkezdése és miért: gyakorlati bevezetés

Legyen szó egy API kimenetének teszteléséről az éles telepítés előtt, vagy egyszerűen beolvas egy weboldalt (például annak ellenőrzésére, hogy nincs-e lefelé), a Curl gyakorlatilag mindenütt jelen van.

Adatkutatóként időről időre használnom kellett. Azonban gyakran előfordult, hogy csak kicseréltem a paramétereket egy átmásolt és beillesztett curl parancsból, amely körbejárta a csapatom Slack csatornáját.

Úgy döntöttem, hogy jobban meg kell értenem ezt a hatékony eszközt, ha teljes mértékben ki akarom használni, és most itt vagyok, hogy megosszam a legérdekesebb dolgokat, amelyeket ebben a göndör oktatóanyagban találtam.

Ha bármilyen tippet vagy trükköt szeretne hozzáadni, kérjük, tegye meg ezt a megjegyzésekben, mivel az eszköz megértése még mindig a kezdeti szakaszban van.

Curl: Mire jó?

A Curl egy parancssori eszköz, amely lehetővé teszi számunkra, hogy HTTP kéréseket hajtsunk végre a shellből. Sok más protokollra is kiterjed, például az FTP-re, bár túlmutatnak az oktatóanyagon.

A neve „Client URL” -et jelent, és Daniel Stenberg svéd fejlesztő fejlesztette ki. Ez egy nyílt forráskódú projekt, amelynek kódja itt található, arra az esetre, ha kedvet kapna hozzá.

Meghívhatja kedvenc termináljáról, és általában előre telepítve van Linux alapú operációs rendszerekre. Ellenkező esetben általában letölthető az apt-get segítségével Linux - on, és főzhető Mac-en.

GET metódus hívása

A legalapvetőbb formájában a curl parancs így fog kinézni:

curl //www.dataden.tech

A curl alapértelmezett viselkedése az, hogy HTTP GET metódust hív be az adott URL-re. Így a program kimenete ahhoz a parancshoz a HTTP válasz teljes teste lesz (ebben az esetben HTML), amelyet a webhely egy GET-re ad vissza, amelyet az stdout- on megadott módon írunk .

Ha el akarja olvasni a választ anélkül, hogy elhagyná a shellt, akkor azt javasoljuk, hogy legalább egy kevesebb parancsba írja be, hogy könnyedén gördülhessen végig a kimeneten.

Sokszor szeretnénk a válasz tartalmát fájlba irányítani. Ez az -o argumentummal történik, így:

curl -o output.html www.dataden.tech

ami egyenértékű:

curl www.dataden.tech > output.html

Opcionálisan megadhatja annak a webhelynek az URL-jét, amelyre curl-t szeretne hívni, egy -s argumentummal:

curl -s //www.dataden.tech

lehetővé téve az érvek sorrendjének megváltoztatását.

A –next használatával egynél több URL-t is megadhat, bár a hivatalos doktornő azt tanácsolja, hogy ehelyett más parancsban hívja meg a curl-t az egyes URL-ekre.

POST küldése egy URL-re

Néha érdemes tesztelni, hogy egy API megfelelően működik-e, és ehhez általában argumentumokat kell küldenie.

Ezt általában a POST módszerrel végezzük, átadva néhány JSON-t az összes szükséges paraméterrel. Számos módja van ennek a göndörítéssel.

Az argumentumok értékeit így adhatja át:

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

Vagy mint egy szokásos JSON:

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

A –data használata egyenértékű a -d használatával , és mindkettő automatikusan megváltoztatja a módszert POST-ra. Az -X flag ( –request ) használatával azonban megadhatjuk, hogy melyik metódust szeretnénk meghívni:

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

A webhely fejlécének lekérése

Néha csak gyorsan meg kell vizsgálnunk, hogy a webhely még mindig fent van-e, anélkül, hogy valóban a teljes, potenciálisan nehéz választ szeretnénk betölteni. Máskor a fejlécek fontos konfigurációkat tárolnak.

Ezt a két felhasználási esetet göndör is kezeli. Tudjuk használni az -include ( -i ) paramétert tartalmazza a fejléc, és -fej ( -I -Ez tőke „i'-), hogy csak a fejléceket (hívja a HEAD módszer).

A felhasználói ügynök értékének beállítása

Most, hogy áttekintettem az alapokat, engedje meg, hogy végigvezessem a legmenőbb dolgokat, amelyeket a göndörítéssel kapcsolatosan találtam.

A user-agent argumentummal megadhatja, hogy melyik eszközt és böngészőverziót használja, abban az esetben, ha a webhely ettől eltérően jelenik meg.

Ezzel láthatja a webhely mobil változatát a laptopjáról, vagy fordítva.

Biztonsági szempontból ez valószínűleg felvet néhány kérdést. Nem tudtam, milyen könnyű eddig úgy tenni, mintha más eszközt használnék (virtuális gép használata nélkül is), és a Csalásmegelőzésben dolgoztam, hogy miért okozhat problémát.

Ennek ellenére mindaddig, amíg ezt véglegesen használja, ez egy fantasztikus módja annak, hogy néhányat említsünk, hogy egy weboldal tabletről, mobil eszközről vagy laptopról néz ki.

Íme egy példa, közvetlenül a hivatalos dokumentációból (bár a felhasználói ügynökök listája könnyen elérhető online).

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

Kapcsolat időzítése a Curl programmal

Egy másik ok, amiért elkezdtem többet megtudni a göndörítésről, az volt, hogy meg akartam nézni, hogy pontosan mennyi időbe telt a weboldalam válasza.

Bár az alapdokumentáció nem fedi le, egy kis googlelés feltárta ezt a parancsot, amelyet nagyon hasznosnak találtam:

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

Ez egyszerűen kiadja azt az összes időt, amely a válasz lekéréséhez az adott tartományból kellett.

Általánosságban elmondható, hogy a -w (–write-out) argumentum speciális formázási karakterláncot vesz fel, és a válasz különböző tulajdonságait tartalmazó, fenntartott kulcsszavakat formázva tölti ki. Minden kulcsszó és a hozzájuk tartozó értékek elérhetők a parancs man oldalán.

További irodalom

Íme néhány link, amelyek érdekesek lehetnek, ha többet szeretne megtudni erről a tág témáról:

  • Felhasználói ügynökök listája Felhasználóügynök-argumentumok összeállítása különböző eszközökhöz és böngészőkhöz.
  • Curl hivatalos dokumentációja.
  • Curl oldala.

Következtetni

Remélem, hasznosnak találta ezt a bevezetést, és elhagyja ezt az oktatóanyagot, ismerve legalább ennek a kényelmes parancsnak az alapjait.

Mint korábban mondtam, még mindig tanulok, és értékelni fogok minden egyéb érdekes tudást a program használatáról. Ugyanez vonatkozik minden visszajelzésre, amit eddig írtam.

Ha hibát követtem el, vagy van olyan rész, amelyről úgy gondolja, hogy egyértelműbben megfogalmazhattam volna, kérem, szóljon.

Remélem, hamarosan újra találkozunk, boldog kódolással!

Kövessen a Mediumon és a Twitteren, hogy naprakész legyen oktatóanyagaimmal, tippjeimmel és cikkeimmel. Fontolja meg a cikk megosztását egy webfejlesztő baráttal, ha tetszett neked (vagy passzív agresszív módon azt mondhatod nekik, hogy tanulják meg a göndörítést).

Eredetileg a www.dataden.tech webhelyen jelent meg 2018. október 7-én.