Skip to main content

Command Palette

Search for a command to run...

Getting Started with cURL

Published
5 min readView as Markdown

Imagine this.

You are sitting at home.
You want a toy.

So you tell your mom:

“Mom, can you bring me my toy from the cupboard?”

Your mom goes to the cupboard, gets the toy, and gives it to you.

That’s exactly how the internet works.

  • You = client (browser / terminal / app)

  • Mom = cURL

  • Cupboard = server

  • Toy = data (HTML, JSON, images, etc.)

cURL is just a helper that talks to servers for you.


🌍 First, What Is a Server? (Very simple)

A server is just a powerful computer that:

  • Stores websites

  • Stores data

  • Sends responses

  • Listens to requests

When you open:

google.com

Your browser is saying:

"Hey Google server, please send me the homepage."

The server replies:

"Sure, here is the page."

This talking is called request and response.


🤔 So What is cURL?

cURL means:

Client URL

But don’t worry about the name.

cURL is simply:

A tool that lets you talk to servers from your terminal.

Instead of using Chrome browser, you use:

Terminal + cURL

So:

Browser → talks to server
cURL → also talks to server

But cURL does it using text commands.


🧑‍💻 Why Programmers Need cURL

Because developers need superpowers that browsers don’t give.

With cURL, you can:

  • Test APIs

  • Send data to servers

  • Debug backend problems

  • Check if a server is working

  • Automate requests

  • Learn how web communication actually works

If browser is a car 🚗
Then cURL is a manual bike 🚲 — slower but you learn everything.


🚀 Your First cURL Command (Magic Moment)

Open terminal and type:

curl https://example.com

Boom 💥
You just talked to a server.

What happened?

  • cURL sent a request to example.com

  • The server replied with HTML

  • cURL printed the response on your screen

You just did what the browser does — but manually.


📦 Understanding Request and Response (Core concept)

Every communication on the web is:

1. Request (You ask)

“Give me the homepage”

2. Response (Server answers)

“Here is the HTML, status code, headers, data”

This happens whether you use:

  • Browser

  • cURL

  • Mobile app

  • Backend code

  • Postman

  • Anything

cURL helps you see this clearly.


🧠 cURL is a Message Sender from Terminal

Remember this simple idea:

cURL = sending messages to servers using terminal

Example:

curl https://api.github.com

You are saying:

"Hey GitHub server, send me some data."

And GitHub replies with JSON.


🔍 What Actually Comes Back? (Response explained simply)

When server replies, it sends:

  • Status (Did it succeed?)

  • Headers (extra info)

  • Body (real data)

You can see full details using:

curl -i https://example.com

You’ll see:

HTTP/1.1 200 OK
Content-Type: text/html
...

200 OK means:

Everything is good ✅

Other common ones:

  • 404 → Not found ❌

  • 500 → Server error 💥

  • 401 → Unauthorized 🔒

These are called status codes.


📬 GET and POST (Very simple introduction)

These are just different types of requests.

GET = Asking for something

curl https://example.com

Means:

Please give me data


POST = Sending something

curl -X POST https://example.com

Means:

I want to send data to you

Example:

curl -X POST https://api.example.com/login

Used when:

  • Logging in

  • Submitting forms

  • Creating accounts

  • Sending messages


🔗 Using cURL to Talk to APIs

An API is just a server that talks with data instead of web pages.

Example:

curl https://api.github.com/users/octocat

You get:

{
  "login": "octocat",
  "id": 1,
  ...
}

That’s how:

  • Mobile apps talk to servers

  • Frontend talks to backend

  • Microservices communicate

  • Real products are built

cURL lets you see this raw communication.


❌ Common Beginner Mistakes with cURL

Everyone makes these mistakes. Totally normal.

1. Forgetting https

Wrong:

curl example.com

Correct:

curl https://example.com

2. Internet not working

cURL depends on internet just like browser.


3. API needs authentication

Some APIs need keys/tokens.
Without them, you’ll get:

401 Unauthorized

Not your fault. That’s security.


4. Confusing cURL error with server error

If server gives 500 error → server issue
If curl says "Could not resolve host" → DNS issue

Understanding this difference makes you a pro.


🧠 Where cURL Fits in Real Development

cURL is used by:

  • Backend developers

  • DevOps engineers

  • API testers

  • Security engineers

  • Cloud engineers

  • QA testers

Real world examples:

  • Testing your backend before frontend is ready

  • Checking if production server is alive

  • Debugging deployment issues

  • Automating server checks

  • Writing scripts

It’s a real professional tool.


🧱 Browser vs cURL (Conceptually)

Browser:

  • Pretty UI

  • Images, CSS, JS

  • Hides complexity

cURL:

  • Raw communication

  • Shows real responses

  • Perfect for learning

  • Perfect for debugging

That’s why serious developers love cURL.


🧾 Basic HTTP Structure (Simple view)

Every request looks like this internally:

Request:

GET / HTTP/1.1
Host: example.com

Response:

HTTP/1.1 200 OK
Content-Type: text/html

<html>...</html>

cURL lets you see this reality.


🎯 Why Learning cURL Makes You Stronger

When you understand cURL:

  • APIs become easy

  • Backend makes sense

  • Debugging becomes logical

  • Errors stop being scary

  • Networking becomes clearer

  • Interviews become easier

You stop being:

"I just write code"

You become:

"I understand how the web works"

That’s powerful.