Keep the useful bits, human.
Beginner field notes
- An HTTP request is a client’s message asking a server to handle an operation. It is the request, not the answer.
- In GET /boxes/B7 HTTP/1.1, GET is the method and /boxes/B7 is the target shown in this readable HTTP/1.1 example.
- Headers supply named information about the request. A body can carry additional data when the request’s semantics support it; not every request needs one.
See a worked example
Find the four parts in two paper requests
One reviewed sample, shared across levels. Nothing here runs on your computer.
Example review recorded 2026-10-17 · version 1.
Fictional HTTPS connection to archive.example. Readable HTTP/1.1 teaching notation only; no message is sent.
A. Request the label view:
GET /boxes/B7?view=label HTTP/1.1
Host: archive.example
Accept: text/plain
A has no body.
B. Ask the Archive to schedule a label-change job:
POST /label-jobs HTTP/1.1
Host: archive.example
Content-Type: text/plain
Content-Length: 8
B7=Tools
Archive's explicit contract interprets B's body as a request to schedule changing B7's label to Tools. No response or completed job is given.A: method GET; target /boxes/B7?view=label; headers Host and Accept; no body. Accept requests plain text but does not establish the returned format or label.
B: method POST; target /label-jobs; headers Host, Content-Type and Content-Length; body B7=Tools, eight ASCII bytes.
Both name host archive.example. Neither HTTP target contains #notes.
There is no evidence here that either request arrived or that B7 was changed.The first line supplies method, target and the chosen version notation. Headers precede the empty line; B's application data follows it. The surrounding A/B labels and explanatory sentences are not wire-message lines. The examples ask different things, but neither request is its own response.
Sources for this sampleVisual
The reviewed description and complete diagram source are available here.
More of this diagram is available inside its frame. Focus the frame and use the arrow keys to pan.
Read the complete diagram source
This is the source for the reviewed diagram, not a command to run.
flowchart LR
C["Browser: client"] --> R["Request: method + target + headers + optional body"]
R --> S["Archive: server"]
S --> U["Result still needs a response and its meaning"] Full explanation and primary sources
Reviewed explanation
An HTTP request is a message from a client asking a server to handle an operation on a target. HTTP, the Hypertext Transfer Protocol, gives the two programs shared rules for that exchange. The request has a method, such as GET, a target identifying the resource, headers supplying metadata and sometimes a body carrying data. These parts describe what is being asked, not whether it worked.
We will use readable HTTP/1.1 notation. In GET /boxes/B7?view=label HTTP/1.1, GET is the method and /boxes/B7?view=label is the request target. The Host: archive.example header names the intended host. Together with the stated HTTPS connection they identify our fictional address. The URL's #notes fragment is left out of the HTTP target. This ordinary path/query form is not the only request-target form HTTP defines.
Headers are named pieces of information about the message. Accept: text/plain asks for plain text as the response format; the actual response still needs to be inspected. Our GET example has no body. It asks for the B7 label's representation, not for a label change. You cannot learn the returned label just from reading this request.
The second example uses POST with a plain-text body, B7=Tools. Our Archive contract says that posting this data to /label-jobs asks it to schedule a label-change job. That application rule is stated here; POST does not universally mean that a field was saved, or that background work finished. Content-Type describes the body format, and Content-Length: 8 describes this example's eight ASCII body bytes. No JSON, programming language or command line is involved.
HTTP/1.1 displays these fields in text lines, with an empty line before a body. HTTP/2 and HTTP/3 carry the same kinds of meaning using different framing and control fields; they do not literally send every request as this text block. Both blocks below are inert teaching notation. Until a stated response or other evidence arrives, they do not prove delivery, approval or completion.
Source collection
- RFC 9110: HTTP roles, intermediaries and caches
Used in: Quick notes
Sections3.3–3.8 define program roles per connection, shared-connection user-identity limits, proxy/gateway/tunnel distinctions and applicable cached responses.
- MDN: HTTP messages
Used in: Quick notes · Worked example · Lesson text
Readable HTTP/1.1 request/response fields and version-specific encoding; not used for the page’s overly broad restriction on which methods can carry bodies.
Uses readable HTTP/1.1 examples to explain method/target/version, headers, an empty line and optional message body. Used for that structure, not its broad simplifications about which methods can have bodies or how every HTTP version is encoded.
- RFC 9110: Safe, idempotent and common methods
Used in: Quick notes
Sections9.2.1–9.3.3 define safe/idempotent intended effects, retry limits, GET content interoperability, HEAD and resource-specific POST processing.
- RFC 9110: Message structure and content semantics
Used in: Quick notes
Sections3.4 and6–6.5.2 distinguish control data, framing/completeness, method/status-dependent content and trailer field constraints.
- RFC 9110: messages, control data, target and methods
Used in: Worked example · Lesson text
Sections 3.4, 6.2–6.4, 7.1–7.2 and 9.3 distinguish request semantics, metadata/content, version-specific control representation, target/Host, GET and POST. Our POST job rule and stated eight-byte text are fictional example facts, not an HTTP guarantee of saving.
Notes AI source review · 2026-10-17
AI source comparison recorded 2026-10-17. Human learner validation is pending.
Quick quiz · one question
Read the request, human
Sample scenario. Inert paper HTTP/1.1 examples. The fictional POST schedules a job; it proves no save or completion.
- read-label
GET /boxes/B7?view=label; Host: archive.example; Accept: text/plain; body: absent. Structured inert teaching fields; not a command or full HTTP parser.- queue-label-job
POST /label-jobs; Host: archive.example; Content-Type: text/plain; Content-Length: 8; body: B7=Tools. Structured inert teaching fields; not a command or full HTTP parser.
Which reading of the two request cards is correct?
Why this answer?
Answers stay on this device.
Sources and exercise scope
- MDN: HTTP messages — request structure
Uses readable HTTP/1.1 examples to explain method/target/version, headers, an empty line and optional message body. Used for that structure, not its broad simplifications about which methods can have bodies or how every HTTP version is encoded.
- RFC 9110: messages, control data, target and methods
Sections 3.4, 6.2–6.4, 7.1–7.2 and 9.3 distinguish request semantics, metadata/content, version-specific control representation, target/Host, GET and POST. Our POST job rule and stated eight-byte text are fictional example facts, not an HTTP guarantee of saving.
Original synthetic exercise. AI comparison against the reviewed lesson recorded on 2026-10-20; the references above state their scope. Human learner validation has not been run. A result here records this attempt; it does not establish mastery.
Follow this learning pathLesson 3 of 8
From a web request to safe event handling
Save or adjust this lesson
Make this lesson yours
Save it for later, or tell your robot what would help.
This correction stays on this browser. Browse all concepts if the topic is missing.
Familiarity is your own assessment. To use it in your coding tool, download your updated learning profile.
Familiarity and lesson feedback are saved on this browser. They do not sync to your account or coding tool.