PyConWeb 2017
--------------------
The web wouldn’t be the web without URLs. Unlike most web technology, URLs are not designed primarily to connect computers to each other. URLs connect us, people, to our software. This is an approachable engineering introduction to the often-overlooked URL, its evolution, and its many moving parts.
6. “
“Some long ass link you are somehow
suppose to fit into the address bar.”
fnaffoxy2916
Defined Feb 17, 2017
urbandictionary.com
7. Those Three Words Every
Browser Understands
Uniform
Uniformity means the
mechanism stays the
same, even if the
types of resources
differ.
Resource
A resource can be
anything, even
dynamic content,
representing a
consistent concept.
Locator
Locators are more than
just identifiers; they
have directions for
network lookup.
URLs are like a treasure
map every browser can
read.
17. Percent encoding aka quoting%
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20
◉ URLs are built to support non-ASCII
◉ Byte values are replaced with %XX
◉ No standard encoding underneath
○ UTF-8 conventional now
○ Latin-1 one of many before
○ Binary-capable
26. But it seems URLs can keep up!!
py://func.module.pkg/arg1/arg2?kw1=val1#awesome
_/ _____________/________/ ______/ _____/
| | | | |
scheme authority path query fragment
OK, back to reality.
33. Hyperlink History and Future
My idea of fun over time:
◉ 2013
○ Build an IO-agnostic HTTP library and spend
way too much time reading URL RFCs
◉ 2017
○ Work with the Twisted project to merge my URL
(boltons.urlutils) with twisted.python.url
◉ Future
○ Work on the Hyper project to bring more
sans-IO web libraries to Python
○ https://github.com/python-hyper/
34. URLs in short
◉ Flexible
◉ Powerful
◉ Becoming even more useful
URLs are what you make of them.