PES
EN English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

How to enable notifications

Notifications are unavailable in this browser or on this address. Try a supported browser on the secure PES site.

If notifications are blocked, allow them in your browser settings.

  1. Open the site controls beside the address bar, or your browser’s site settings. Set Notifications for this site to Allow.
  2. In your device settings, allow notifications for your browser and check Do Not Disturb or Focus.
  3. Return to PES, reload the page, and use the bell to enable notifications.

On iPhone or iPad, add PES to your Home Screen, open it there, then allow notifications.

My learning progress
  1. How to use AI
  2. Terminal commands
  3. Advanced AI
  4. Vibe coding
  5. AI certification Getting ready
  6. Keyboard
See details
All Vibe Coding topics
VIBE CODING

Web Client

Everything that asks a server for something.

Chrome is a web client, and so is a single line of curl. In this chapter you type an HTTP request by hand, wrap it into a shell script, learn curl properly, and then open Chrome's developer tools to watch the very same messages fly past.

curl: the client you will use every day

curl does properly what our script does roughly: redirects, HTTPS, headers, uploads, timeouts, cookies. It is on almost every machine, and it is the standard way to test a server without a browser in the way.

terminal
# body only
curl http://localhost:8084

# body plus the response headers
curl -i http://localhost:8084

# the whole exchange, request headers included
curl -v http://localhost:8084

The options that matter

OptionWhat it does
-iShow the response headers as well as the body. The first thing to reach for when a page is not what you expected.
-vVerbose: show the request you sent and the response you got, line by line, including the connection itself.
-LFollow redirects. Without it, a 301 gives you an almost empty response instead of the page you wanted.
-o FILESave the response to a file instead of printing it. This is curl as a download tool.
-H "Name: value"Add a request header — a content type, an authorisation token, a language preference.
-X POST -d "data"Send data instead of just asking. Adding data implies POST, and this is how you test a form or an API from the terminal.
-sSilent: no progress meter. Use it whenever the output feeds into another command or a script.
-A "name"Pretend to be a particular browser. Some sites answer differently depending on who is asking.

Calling an API

Most of what a modern app talks to is not a page but an API returning JSON. curl fetches it, and jq makes it readable — together they are how you check an endpoint before writing a single line of application code.

terminal
# fetch JSON and pick one field out of it with jq
curl -s https://api.github.com/repos/sveltejs/svelte | jq '.stargazers_count'

# send JSON with POST
curl -X POST https://httpbin.org/post \
  -H 'Content-Type: application/json' \
  -d '{"name":"PES","level":1}'

# download to a file
curl -L -o page.html https://getpes.com

Get into the habit of testing with curl first. If curl gets the right answer, the server is fine and the bug is in your application; if curl gets the wrong answer, you have saved yourself an afternoon of looking in the wrong place.

You mark this yourself. Nothing is graded here.

Mark this step as understood?

This cannot be undone yet, so mark it only when you really understand.

Marked as understood

You mark this yourself. Nothing is graded here.

Guidelines

AI

AI Certification

Study

Vibe Coding

Game

Practice

Tutors

Chat

Forum

Create

Community

More

Glossary

Pick a word you don't know. You'll see a simple explanation and related terms.

No matching term yet.

Pick a term to see its explanation.