Skip to main content

Command Palette

Search for a command to run...

Getting Started with cURL

Updated
4 min readView as Markdown
Getting Started with cURL

Before we talk about cURL, let’s understand one basic thing first.

What is a Server? And Why Do We Need to Talk to It?

A server is just another computer.

But unlike your laptop:

  • It is always connected to the internet

  • It waits for requests

  • It sends back responses

When you open a website:

  • Your browser sends a request to a server

  • The server sends back data (HTML, JSON, images, etc.)

So the real question is:

“How do we talk to a server?”

Browsers do it visually.
But programmers often need a direct, raw way to talk to servers.

That’s where cURL comes in.

What is cURL?

cURL is a tool that lets you send messages to a server from the terminal.

Think of it like this:

  • Browser → talks to server using clicks and UI

  • cURL → talks to server using commands

Same server.
Same internet.
Different interface.

cURL doesn’t show buttons or pages.
It just shows what the server sends back.

Why Programmers Need cURL

As a programmer, you don’t always want:

  • A full browser

  • UI distractions

  • Extra things happening in the background

You want:

  • Full control

  • Raw responses

  • Clear request → response flow

cURL is used to:

  • Test APIs

  • Debug backend endpoints

  • Check if a server is alive

  • Understand HTTP deeply

If you’re moving towards backend, APIs, or full-stack, cURL is unavoidable.

Your First cURL Request

Let’s start with the smallest possible win.

Open your terminal and type:

curl https://example.com

That’s it.

What just happened?

  • cURL sent a request to example.com

  • The server responded

  • cURL printed the response in the terminal

No magic.
No flags.
No configuration.

Understanding Request and Response

Every server communication follows this pattern:

Request → Response

The Request

Sent by:

  • Browser

  • cURL

  • Mobile app

  • Backend server

Contains:

  • What you want

  • From where

  • Sometimes extra data

The Response

Sent by the server.

Contains:

  • Status (success or error)

  • Data (HTML, JSON, text, etc.)

When you used cURL earlier:

  • The request was sent silently

  • The response was printed directly

What Does the Response Mean?

When you run:

curl https://example.com

You usually see:

  • HTML content

  • Text returned by the server

That means:

  • The request was successful

  • The server understood you

  • The server sent data back

Later, you’ll learn about:

  • Status codes

  • Headers

  • Errors

But for now, just remember this:

“If you see data, the request worked.”

Using cURL to Talk to APIs

Websites return HTML.
APIs usually return JSON.

Example:

curl https://api.github.com

Here:

  • You’re not fetching a webpage

  • You’re talking to an API

  • The response is structured data

This is how:

  • Frontends

  • Mobile apps

  • Backend services

talk to each other.

cURL lets you do the same, manually.

GET and POST (Only What You Need Right Now)

We’ll keep this simple.

GET - Asking for Data

GET means:

“Give me something.”

Example:

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

You’re asking the server for information.

POST — Sending Data

POST means:

“Here’s some data for you.”

Used when:

  • Creating something

  • Submitting a form

  • Sending JSON

You’ll learn POST properly later.
For now, just know:

  • GET → receive data

  • POST → send data

That’s enough to move forward.

Browser Request vs cURL Request

Browser:

  • Sends requests automatically

  • Adds headers

  • Handles cookies

  • Renders UI

cURL:

  • Sends exactly what you tell it to

  • No UI

  • No hidden behavior

  • Pure request → response

This is why backend developers love cURL.

Common Mistakes Beginners Make with cURL

Let’s clear some confusion early.

Expecting a UI

cURL doesn’t render pages.
It only shows raw responses.

Getting scared by messy output

Servers don’t send “pretty” data by default.

Jumping into too many flags

You don’t need -X, -H, -d on day one.

Thinking cURL is outdated

cURL is used everywhere, even inside tools you already use.

Where cURL Fits in Backend Development

cURL sits right here:

Frontend / Mobile / Backend —> cURL —> Server / API

It helps you:

  • Test endpoints before writing frontend code

  • Debug backend issues

  • Understand HTTP without abstraction

If you understand cURL,
you understand how clients talk to servers.