Everything you always wanted to know about the Internet, but were afraid to ask.

jordankasper.com/internet

Where do you want to go?


URL
(Human readable addressing)

Where do you want to go?

But we really want to go to 36.16085, -86.773903...

by car...

and to the second floor...

room 202.

How should we communicate?


HyperText Transfer Protocol - Secure

Other protocols you might know...

FTP, POP, SMTP, SSL, DHCP, TCP, SSH

Catchy Title


Catchy Title


subdomain.SLD.TLD

Common TLD's: .com, .org, .gov
Examples of SLD's: google, whitehouse, facebook
Typical subdomains: www, mail, blog

Follow the Path


This is not a real directory structure!

Any port in a storm...


http://www.beggsandpartners.com/plumbing-heating/overview/

Into the cloud

Into the cloud

Into the cloud

Into the cloud

Into the cloud

Into the cloud

Where are we going again?

We just typed in:

http://www.google.com/search/howsearchworks/


But where do we really want to go?

We need a translator!

Down the line...

The first machine to know the answer wins!

Down the line...

The first machine to know the answer wins!

Down the line...

The first machine to know the answer wins!

Down the line...

The first machine to know the answer wins!

Down the line...

The first machine to know the answer wins!

Down the line...

The first machine to know the answer wins!

So many numbers

Now we know where to go to get content from Google:

74.125.227.36

But what is that number?

It's an IP - address.

A machine-readable identifier for a network interface
(not for the whole machine!)

IPv4

Set of four numbers,
between 0 and 255

(that's 8 bits each, making a 32-bit address)

74. 125.227.26
Network ID (1-126, Class A) Host (interface) ID

Your computer at home has an IP address, too!

But why does it always start with 192?

It's a private network,
and every device you have has a private IP!

Home Networks

Static IP

Dynamic Host Control Protocol

Dynamic Host Control Protocol

IPv4 vs IPv6

Why the need for a new version of IP addressing?

Seems to work just fine...

IPv4

  • format: 192.168.1.67
  • 32-bit addressing (4 x 8 bits)
  • 2^32 possible IPs =
    4,294,967,296 (~4.3 billion)

IPv6

  • format: 2001:db8:85a3:42:0:8a2e:370:7334
  • 128-bit addressing (8 x 16 bits)
  • 2^128 possible IPs =
    340,282,366,920,938,463,463,374,607,431,768,211,456

We started running out of IPv4 addresses in 2011.

Visualizing IPv6

Imagine a monitor with 105px per inch,
and 1px per IP address...

http://pthree.org/2009/03/08/the-sheer-size-of-ipv6/

Let's see that again...

Anatomy 101

The HTTP REQUEST

GET /search/howsearchworks/ HTTP/1.1
    Host: www.google.com
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Connection: keep-alive
    Cookie: 1%2FcA8CoqFFr9udmhMd2NpbtBcfH9Rzdd9fE5ISkdmB%2F...
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...
    ...

The Method

GET /search/howsearchworks/ HTTP/1.1
  • GET - Data Retrieval
  • POST - Data Creation
  • PUT - Data Updates
  • DELETE - Data Deletion

Less often used...

  • OPTIONS - Tells the client what methods are supported (and sometimes how to use them)
  • PATCH - Update part of a record with the given data (if implemented, then PUT usually replaces the entire record)
  • HEAD - basically a GET, but only retrieves http headers, not the full response

Anatomy 101

What's a cookie?

Cookie: 1%2FcA8CoqFFr9udmhMd2NpbtBcfH9Rzdd9fE5ISkdmB%2F2023-05-09+15%3A21%3A59
Cookie: 1/cA8CoqFFr9udmhMd2NpbtBcfH9Rzdd9fE5ISkdmB/2023-05-09 15:21:59
  • Typically URL or base64 encoded (not required)
  • Stored on local user's machine
  • Sent with every request to the scoped host/domain

Typical Web Application

Anatomy 102

The HTTP RESPONSE

HTTP/1.1 200 OK
    Date: Mon, 28 Mar 2016 09:15:00 GMT
    Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
    Last-Modified: Mon, 08 Jan 2016 23:11:55 GMT
    Cache-Control: no-cache, no-store, max-age=0, must-revalidate
    Content-Type: text/html; charset=UTF-8
    Content-Length: 220
    Expires: Fri, 01 Jan 2020 00:00:00 GMT
    X-Search-Version: 245.136

    <!DOCTYPE html><html><head>...</head><body>...</body></html>

Status Codes

HTTP/1.1 200 OK
  • 100-199 - Informational (very rarely used)
  • 200-299 - Success (200, 201, 204)
  • 300-399 - Redirection and Cache (301, 302, 304)
  • 400-499 - Client Error (400, 401/403, 404, 405, 418)
  • 500-599 - Server Error (500, 501)

More than just the HTML

Rendering & Code Execution

<!DOCTYPE html><html><head>...</head><body>...</body></html>

  1. Setup processing based on DOCTYPE
  2. Start processing the <head> element
  3. Process <meta> tags (in order)
  4. Download resources from <link> & <script> tags
  5. Execute JavaScript when found (unless defered)
  6. Start rendering the DOM tree from the <body> element
  7. Download resources in <body> (<img>, <script>, <video>, etc)
  8. Render Cascading Style Sheets, from <head> to <body>

Rendering You Helpless

What about encryption?

SSL (TLS)- encrypt data sent to and from a client/server

Why trust that server's certificate?

A Certificate Authority (CA) guarantees
the holder of the certificate is who they say they are.

They are the gatekeepers.

Examples of ROOT CA's: Verisign, Thawte, GeoTrust, etc.

Certificates from root CA's can cost over $3,000

But I hear you can get one for free...

Thinking face emoji

Certificate Chains

http://datacenteroverlords.com/2011/09/25/ssl-who-do-you-trust/

Certificate Chains

http://datacenteroverlords.com/2011/09/25/ssl-who-do-you-trust/

Certificate Chains

http://datacenteroverlords.com/2011/09/25/ssl-who-do-you-trust/

I've told you a lot... What did I miss?

Q & A Time!

jordankasper.com/internet

Acronymity

  • AJAX
  • CGI
  • CLI
  • CRON
  • CSS
  • DBMS
  • DHCP
  • DNS
  • DOM
  • FTP
  • HTTPS
  • IMAP
  • IP
  • ISP
  • LAMP (or Perl, or Python)
  • LAN
  • MAC
  • NIC
  • Perl - (not an acronym!)
  • PHP (yes, it's recursive)
  • POP
  • RSS
  • SMTP
  • SSH
  • SSID
  • SSL
  • SQL
  • TCP
  • UDP
  • URI
  • URL
  • VPS
  • WAMP
  • WAN
  • WEP
  • WiFi - No, it does not mean "Wireless Fidelity", it's just a name.
  • WPA
  • WWW
  • XHTML
  • XML