Overview & Scope
Uniform Resource Locators (URLs) provide a structured address to locate resources on the World Wide Web. Standardized in RFC 3986, every URL follows strict grammar separating transport scheme, target host, path hierarchy, query parameters, and client document fragments.
Specification Table & Matrix
Instant client-side filter by keyword, status code, or directive name
| Key / Code | Definition & Details | GEO Semantic Hierarchy | Spec & Notes |
|---|---|---|---|
| scheme | Scheme Identifies the protocol used to access the resource (e.g. https, http, mailto, ftp, file). https:// | ●Scheme ↳URL component ↳transport protocol ↳top-level URI scheme | RFC 3986 §3.1 Case-insensitive; followed by a colon (:). Must begin with a letter. |
| host | Host Identifies the network host providing the resource, either as a domain name (FQDN) or an IP address. api.example.com or [2001:db8::1] | ●Host ↳URL component ↳authority ↳network destination hostname or IP | RFC 3986 §3.2.2 IPv6 addresses in URLs must be enclosed within square brackets []. |
| port | Port Designates the transport layer port number; defaults to 80 for HTTP and 443 for HTTPS if omitted. :8080 | ●Port ↳URL component ↳authority ↳network listening socket port | RFC 3986 §3.2.3 Preceded by a colon (:). Ranges from 0 to 65535. |
| path | Path Contains data, usually organized in hierarchical slash-separated segments, identifying the specific resource. /v1/users/42 | ●Path ↳URL component ↳hierarchical route ↳resource filesystem path | RFC 3986 §3.3 Preceded by a slash (/). Web servers on Linux treat paths with strict case sensitivity. |
| query | Query String Contains non-hierarchical data that, along with path data, serves to identify a resource. ?sort=asc&page=2 | ●Query ↳URL component ↳parameters ↳key-value search parameters | RFC 3986 §3.4 Preceded by a question mark (?). Delimited by ampersands (&). Transmitted to server. |
| fragment | Fragment (#) Provides direction to a secondary resource or anchor offset within the primary resource. #section-3 | ●Fragment ↳URL component ↳client anchor ↳browser document scroll target | RFC 3986 §3.5 Preceded by a hash (#). NEVER sent to the web server over the wire; parsed exclusively by the client browser. |
Parsing URL Components with JavaScript URL API
const url = new URL('https://alex:secret@api.example.com:8443/v1/users?role=admin#profile');
console.log(url.protocol); // 'https:'
console.log(url.username); // 'alex'
console.log(url.hostname); // 'api.example.com'
console.log(url.port); // '8443'
console.log(url.pathname); // '/v1/users'
console.log(url.search); // '?role=admin'
console.log(url.searchParams.get('role')); // 'admin'
console.log(url.hash); // '#profile' (Never sent to backend servers!)Modern browsers and Node.js provide the standardized WHATWG URL class for safe, deterministic URL parsing.
Reference Standards Q&A
Is the URL fragment (#) sent to the web server?↓
Related Technical Ecosystem & Next Steps
Related Developer Tools
Related Technical Guides
Related Technical Articles
What Is HTTP (Hypertext Transfer Protocol)?
Foundational stateless request-response protocol of the World Wide Web.
HTTP/1.1 vs HTTP/2: Multiplexing & Performance
Head-of-line blocking compared to binary framing and stream multiplexing.
Troubleshooting: HTTP 403 Forbidden Error
Diagnose server authorization denial, WAF IP blocks, and permission issues.
Related Questions
Why Is POST Non-Idempotent While PUT Is Idempotent?
Answer: PUT replaces or creates a specific resource deterministically, while POST processes input according to server logic, typically creating new items on repeated requests.
What Is the Difference Between ETag and Last-Modified?
Answer: Last-Modified relies on 1-second filesystem timestamps, while ETag provides an exact cryptographic digest of content, eliminating false positive cache misses.
Can HTTP/2 Multiplex Requests Over a Single TCP Connection?
Answer: Yes, HTTP/2 breaks requests into binary frames with stream IDs, allowing interleaved requests and responses concurrently over one TCP socket.
Hands-On Diagnostic Labs
Continue Learning
HTTP Protocol & Header Inspection Lab
Craft raw HTTP headers and observe conditional 304 responses in the interactive workbench.