Request Investigator · DevTools companion
See two requests in your own browser
This educational page loads as one HTML document, then JavaScript sends a separate same-origin request for product data. The endpoint is read-only, uses fixed demo data, and intentionally returns a controlled error.
Educational product page
Desk Lamp
This shell came from the HTML document. Its product data is requested separately by JavaScript.
Waiting for the separate data request… If JavaScript is unavailable, use the static sample evidence below.
Use the Network panel
Find and compare the two requests
- Open this page in a regular browser tab.
- Open Developer Tools. In Chrome, use the browser menu → More tools → Developer tools; other browsers provide a similarly named developer-tools panel.
- Select Network. If the list is empty or you opened it after the page loaded, reload once to capture both requests. Reloading creates a new document request and a new data request.
- In the request list, use the Doc filter—or inspect the Type column—to find
devtools-page-datawith typedocument. Then use Fetch/XHR to findproduct-datawith typefetch. Filter names vary slightly between browsers. - Select each row and compare its full URL, type, status, response body, and response headers. For
product-data, inspectWWW-Authenticate,X-Codewise-Demo, andX-Request-ID. - Use Send the data request again when you want another fetch without reloading the document. The button repeats only
product-data. - State what succeeded, what failed, what remains unknown, and which server-side evidence would help next.
Checkpoint
Make a boundary statement
Before opening the note below, answer two questions in your own words:
- What does the document row prove, and what does the fetch row prove?
- What server-side cause can the Network panel not establish by itself?
Reveal the browser-evidence boundary note
The browser can observe that the HTML document succeeded and a later JavaScript-initiated request reached a same-origin endpoint that returned 401 with a challenge and fixed demo response. It cannot prove that a real session lookup occurred: this endpoint deliberately returns 401 and does not read a cookie, user account, or session store.
Case 02 adds a clearly labeled illustrative authentication record so you can practise correlating browser evidence with a server-side record. That simulated record is not produced by this live demo.
Cannot use DevTools or JavaScript? Inspect static sample evidence
GET /learn/request-investigator/devtools-page-data
Type: document
Status: 200 OK
Content-Type: text/html
GET /api/request-investigator/product-data
Type: fetch
Status: 401 Unauthorized
Content-Type: application/json
WWW-Authenticate: DemoSession realm="codewise-devtools"
X-Codewise-Demo: request-investigator
X-Request-ID: cw-devtools-401The document and fetch are separate HTTP exchanges. A successful document does not establish that the later request succeeded. The 401 identifies the endpoint's response, but this demo alone does not establish a real server-side authentication root cause.
References & further reading
References & further reading2 sourcesPrimary standards and official documentation used for this lesson.
- Inspect network activity (opens in a new tab)
Chrome for Developers
Network-panel controls and request inspection in Chrome DevTools.
- RFC 9110: HTTP Semantics — 401 Unauthorized (opens in a new tab)
IETF
The response status and authentication-challenge requirement used by the controlled endpoint.