top | item 38249404

URL Explained – The Fundamentals

74 points| signa11 | 2 years ago |ittavern.com | reply

19 comments

order
[+] deathanatos|2 years ago|reply
There are … a few errors in the post?

> Scheme: (always present, not always visible)

Schemes are required by the URI/URL's grammar. I'm not entirely sure what "always present, not always visible" even means … those would seem to be synonyms. Perhaps we could infer "not always visible" to mean that there's some implied default … but there's not, not for a URI/URL. (For a relative-ref, yes.)

> Path: (always present)

… but this blows our implied default theory above out of the water. Paths are not always present: "https://google.com" is a valid URL, with no path. (One could say it implies "/", but … see the above.)

> It is recommended to place IPv4 and IPv6 addresses into brackets:

It is definitely not "recommended" … it's malformed to put IPv4 addresses in brackets, and it's mandatory for IPv6 addresses.

Just read the RFC? https://datatracker.ietf.org/doc/html/rfc3986

> Host: (always present, not always visible)

I'm trying to think of how you could have a URL without a host "visible". The network location is like the defining feature of a URL, vs. a URI.

But if a URI lacks a host, it's not just "not visible", again, there's no implied default there. "Host" might not even make sense, depending on the scheme.

[+] whatbackup|2 years ago|reply
Hello, author here: thank you for your feedback!

In general, I've removed the notes in the brackets and either added more context and examples or integrated it into the text.

> Scheme: (always present, not always visible)

Added more context.

> Path: (always present)

You are right, the root directory `/` is implied. Added this as an example.

> It is recommended to place IPv4 and IPv6 addresses into brackets:

Correct, my bad. I've added more examples and the note, that it is required to put IPv6 addresses into square brackets.

> Host: (always present, not always visible)

Been a while so I am not sure what I meant. I've made some changes and added more examples.

Again, thank you!

[+] johnny22|2 years ago|reply
maybe it just meant that the scheme isn't visible in the address bar in a browser like chrome.
[+] tkot|2 years ago|reply
> Host: (always present, not always visible)

Hostname can be skipped in file URI and localhost will be assumed, maybe that's what the author meant.

[+] 6510|2 years ago|reply
Fragment identifiers are not sent to the server.

query example should have both ? and & like

     ?foo=1&bar=2&baz=3
Perhaps behind the path/to/whatever have a /filename.XXX

Also, the story on the www "subdomain" is missing.

[+] whatbackup|2 years ago|reply
Hello, author here, thank you for your feedback.

> Fragment identifiers are not sent to the server.

I've not stated that this is the case, but I might add a note, that this is the case.

> query example should have both ? and & like > ?foo=1&bar=2&baz=3

The `&` is only needed if you have multiple parameters like in the Youtube example, or am I getting it wrong?

> Perhaps behind the path/to/whatever have a /filename.XXX

This is an example for a path without explicit resource as most servers would provide an `index.html` file by default in this case. I might add a note to clarify it.

> Also, the story on the www "subdomain" is missing.

Story, as in history?

[+] samtho|2 years ago|reply
For the query portion, it really depends if your are reading it server side or client side and using the WHATWG standard[0] which itself just mirrors convention. However, the standard dictating how a URL might be formed does not mandate anything about the query string that makes it parsable.

[0]: https://url.spec.whatwg.org/#interface-urlsearchparams

[+] Biganon|2 years ago|reply
Also, what's with ";" as a delimiter in the query? I would've appreciated an example
[+] codepoet80|2 years ago|reply
> It is recommended to place IPv4 and IPv6 addresses into brackets:

I tried doing this, and my brower(s) just assumed it was a search string, and took me to my search engine. Does that mean they're not following the RFC? (section 3.2.2 of RFC3896) Should I file a bug with Mozilla?

[+] SethMLarson|2 years ago|reply
The post is incorrect, only IPv6 addresses are meant to be put in brackets.