Network Inspector β
The NETWORK sub-tab in DEVTOOLS captures every HTTP request and response automatically. No configuration. No filter needed upfront. Everything goes in.
Overview β
Unlike browser DevTools that you have to open at the right time, Nothing Browser captures everything from the first request.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NETWORK [247] β
ββββββββββββ¬βββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββββββββββββββββββββββββββ€
β Method β Status β Type β Size β URL β
ββββββββββββΌβββββββββΌβββββββββββΌβββββββββββΌβββββββββββββββββββββββββββββββββββ€
β POST β 200 β Fetch β 1.2 KB β https://api.example.com/v1/login β
β GET β 304 β Script β - β https://cdn.example.com/app.js β
β GET β 200 β Image β 45 KB β https://cdn.example.com/logo.png β
β GET β 404 β XHR β 0 B β https://api.example.com/v1/missingβ
β WS β 101 β WebSocketβ - β wss://socket.example.com β
ββββββββββββ΄βββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββββββββββββββββββββββββββWhat Gets Captured β
| Field | Description | Example |
|---|---|---|
| Method | HTTP method | GET, POST, PUT, DELETE, PATCH |
| Status code | Response status | 200, 304, 404, 500 |
| Content type | Response format | application/json, text/html |
| Response size | Size in bytes/KB | 1.2 KB, 45 KB |
| Request headers | All headers sent | User-Agent, Authorization |
| Response headers | All headers received | Set-Cookie, Content-Type |
| Request body | POST/PUT/PATCH body | JSON, form data, plain text |
| Response body | Full server response | JSON auto-formatted |
| Timestamp | Time of request | 14:30:25.123 |
| Duration | Time to complete | 234 ms |
How to Use It β
Step-by-Step β
Step 1: Open Nothing Browser
β
βΌ
Step 2: Go to BROWSER tab and navigate to any site
β
βΌ
Step 3: Switch to DEVTOOLS β NETWORK
β
βΌ
Step 4: All requests are already there (no need to pre-open)Detail Panel β
Click any row to see the full detail in the right panel. Three sub-tabs:
| Sub-tab | Content |
|---|---|
| Summary + Headers | Firefox-style view with decoded query params, full URL, all headers |
| Response | The server response body β JSON formatted if applicable |
| Raw | Raw HTTP/1.1 representation |
Summary + Headers View β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Summary β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β URL: https://api.example.com/v1/users?page=2&limit=20 β
β Method: GET β
β Status: 200 OK β
β Type: application/json β
β Size: 1.2 KB β
β Duration: 234 ms β
β β
β Request Headers: β
β User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... β
β Authorization: Bearer eyJhbGciOiJIUzI1NiIs... β
β Accept: application/json β
β β
β Response Headers: β
β Content-Type: application/json β
β Set-Cookie: session_id=abc123; Path=/; HttpOnly; Secure β
β Cache-Control: no-cache β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββResponse View β
{
"users": [
{ "id": 1, "name": "John Doe", "email": "john@example.com" },
{ "id": 2, "name": "Jane Smith", "email": "jane@example.com" }
],
"total": 2,
"page": 1
}Raw View β
GET /v1/users?page=2&limit=20 HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Set-Cookie: session_id=abc123; Path=/; HttpOnly; Secure
Cache-Control: no-cache
{"users":[{"id":1,"name":"John Doe","email":"john@example.com"}],"total":2,"page":1}Filtering β
Filter Bar β
Use the filter bar to search by URL:
| Filter | Example |
|---|---|
| Text search | /api/v1 |
| Exact match | "https://api.example.com/login" |
| Wildcard | *users* |
Type Dropdown β
Filter by request type:
| Type | Description |
|---|---|
| XHR | XMLHttpRequest (AJAX calls) |
| Fetch | Fetch API calls |
| WS | WebSocket connections |
| Script | JavaScript files |
| Doc | HTML documents |
| Img | Images |
| CSS | Stylesheets |
| Font | Font files |
Combined Filtering β
Filter by type AND search:
Type: XHR + Search: /api/users β Shows only user API callsExport from Network Tab β
Select any row and click:
| Button | Action | Output |
|---|---|---|
| COPY HEADERS | Copies summary + headers | Plain text |
| COPY RESPONSE | Copies response body | Raw text |
| AS CURL | Generates cURL command | Terminal command |
| AS PYTHON | Generates Python script | requests code |
| DOWNLOAD | Saves full request+response | .txt file |
What's Included in Exports β
| Component | Included? |
|---|---|
| URL | β Yes |
| Method | β Yes |
| Request headers | β Yes |
| Request body | β Yes |
| Response headers | β Yes |
| Response body | β Yes |
| Cookies | β Yes (from Cookie Inspector) |
Cookies from the Cookie Inspector are automatically included in exports.
Capture Method β
HTTP capture uses two layers to ensure complete capture:
Layer 1: Network Layer (C++) β
QWebEngineUrlRequestInterceptor captures every request at the network layer:
void Interceptor::interceptRequest(QWebEngineUrlRequestInfo &info) {
// Captures request URL, method, headers
// Can inject headers before request is sent
// Happens before any JavaScript runs
}Captures: URL, method, headers, timing
Layer 2: JavaScript Layer β
JavaScript injection patches fetch and XMLHttpRequest:
// Patched fetch
const originalFetch = window.fetch;
window.fetch = function(...args) {
// Capture request body BEFORE it's sent
const requestBody = args[1]?.body;
return originalFetch.apply(this, args).then(response => {
// Capture response body
return response;
});
};Captures: Request body (POST data), response body
Why Two Layers? β
| Layer | Captures | Misses |
|---|---|---|
| Network layer only | Headers, timing | Request body, response body |
| JS layer only | Body | Headers, timing |
| Both layers | Everything | β |
This dual approach is why request bodies (POST data) are captured correctly β the JS layer sees the body before it's sent.
Real-World Use Cases β
1. Debugging API Calls β
1. Perform action in browser
2. Check NETWORK tab
3. Find the API call
4. Check request/response
5. See exactly what went wrong2. Reverse Engineering Authentication β
1. Log in to site
2. Find POST request to /login
3. Check request body (username, password)
4. Check response (token, cookies)
5. Replicate in your code3. Finding Hidden Endpoints β
1. Browse the site
2. Watch NETWORK tab
3. Look for API calls to /internal, /admin, /v2
4. Discover undocumented endpoints4. Performance Analysis β
1. Load a slow page
2. Check NETWORK tab
3. Sort by duration
4. Find slowest requests
5. Optimize or cacheRequest Types Explained β
| Type | Description | Common Use |
|---|---|---|
| XHR | XMLHttpRequest | Legacy AJAX calls |
| Fetch | Fetch API | Modern AJAX calls |
| WS | WebSocket | Real-time data |
| Script | JavaScript files | Page functionality |
| Doc | HTML documents | Page navigation |
| Img | Images | Visual content |
| CSS | Stylesheets | Page styling |
| Font | Font files | Typography |
| Media | Audio/Video | Multimedia |
Column Sorting β
Click column headers to sort:
| Column | Sort Behavior |
|---|---|
| Method | Alphabetical |
| Status | Numerical |
| Type | Alphabetical |
| Size | Numerical |
| URL | Alphabetical |
| Duration | Numerical |
Live Counter β
The tab label shows the number of captured requests:
NETWORK [247] β 247 requests captured so farThis updates in real time as requests are captured.
Performance Notes β
| Metric | Value |
|---|---|
| Max requests | Unlimited (memory permitting) |
| Max response size | 10MB (configurable) |
| Capture overhead | Minimal |
| Memory usage | Increases with capture size |
Tip: Click CLEAR periodically for long sessions.
Troubleshooting β
No Requests Captured β
Solutions:
- Check you're on the NETWORK sub-tab
- Navigate to a page (capture starts automatically)
- Check DEVTOOLS is open
Request Body Empty β
Solutions:
- Request may have no body (GET requests)
- Body may be too large (>10MB)
- Body may be binary/streaming
Response Body Empty β
Solutions:
- Response may be empty (204 No Content)
- Response may be streaming
- Try DOWNLOAD to save raw response
Export Missing Cookies β
Solution: Ensure cookies are captured in COOKIES tab and domain matches request URL.
Keyboard Shortcuts β
| Shortcut | Action |
|---|---|
Ctrl+F | Focus filter bar |
Ctrl+Shift+F | Clear filter |
Ctrl+C | Copy selected request (headers + body) |
Delete | Clear all captured requests |
Next Steps β
- One-Click Export β Turn requests into code
- Cookie Inspector β Track cookies from responses
- WebSocket Capture β Real-time traffic
Nothing Ecosystem Β· Ernest Tech House Β· Kenya Β· 2026