1
00:00:01,200 --> 00:00:06,044
Every time you open a web page, three ideas from 1990 go to work.

2
00:00:06,244 --> 00:00:08,113
An address that names the page.

3
00:00:08,133 --> 00:00:09,881
A document written in markup.

4
00:00:09,901 --> 00:00:13,797
And a short conversation between two computers to fetch it.

5
00:00:13,997 --> 00:00:17,575
Frameworks, apps, and APIs all sit on top of those three,

6
00:00:17,595 --> 00:00:20,420
no matter how deep the abstraction goes.

7
00:00:20,620 --> 00:00:24,845
So to understand the web as a medium, it helps to start where it started.

8
00:00:27,345 --> 00:00:28,135
March 1989.

9
00:00:28,155 --> 00:00:33,683
CERN, the particle physics lab on the border of France and Switzerland.

10
00:00:33,883 --> 00:00:38,456
Researchers from dozens of countries come and go, writing papers, notes,

11
00:00:38,476 --> 00:00:41,073
and documentation in many languages.

12
00:00:41,273 --> 00:00:46,509
They work on computers that don’t share information: mainframes, minicomputers,

13
00:00:46,529 --> 00:00:52,219
Unix workstations, Macs, and PCs, each with its own formats and its own programs.

14
00:00:52,419 --> 00:00:54,432
Information gets lost all the time.

15
00:00:54,452 --> 00:00:58,180
When someone leaves, what they knew often leaves with them.

16
00:00:58,380 --> 00:01:01,597
Tim Berners-Lee, a British computer scientist at CERN,

17
00:01:01,617 --> 00:01:04,294
sees that the problem isn’t any one computer.

18
00:01:04,314 --> 00:01:07,491
It’s that nothing links the information on them.

19
00:01:09,591 --> 00:01:13,053
So he writes a proposal called Information Management.

20
00:01:13,073 --> 00:01:14,924
Instead of a rigid hierarchy,

21
00:01:14,944 --> 00:01:19,825
it describes a web of linked notes: documents that point to other documents,

22
00:01:19,845 --> 00:01:21,112
on any machine.

23
00:01:21,312 --> 00:01:26,305
His boss, Mike Sendall, writes three words on the cover. Vague, but exciting.

24
00:01:27,005 --> 00:01:28,869
Sendall lets him keep going.

25
00:01:28,889 --> 00:01:34,522
By late 1990, Berners-Lee has picked a name, and with his colleague Robert Cailliau,

26
00:01:34,542 --> 00:01:37,332
he proposes the WorldWideWeb project.

27
00:01:37,532 --> 00:01:39,891
The name could have been different.

28
00:01:39,911 --> 00:01:42,882
Information Mesh sounded too much like mess.

29
00:01:42,902 --> 00:01:45,533
Mine of Information abbreviated to MOI,

30
00:01:45,553 --> 00:01:49,523
French for “me.” And The Information Mine spelled TIM.

31
00:01:51,623 --> 00:01:53,680
The web rests on three inventions.

32
00:01:53,700 --> 00:01:55,955
Think of them as the web’s atom.

33
00:01:56,155 --> 00:02:00,702
First, the URL: one addressing scheme for every kind of information.

34
00:02:00,722 --> 00:02:02,650
A scheme, a host, and a path.

35
00:02:02,670 --> 00:02:08,358
The same pattern could point to a web page, a file server, a newsgroup, or a mailbox,

36
00:02:08,378 --> 00:02:12,305
and stitch those separate information spaces into one.

37
00:02:12,805 --> 00:02:17,430
The double slash was borrowed from the file system of Apollo workstations.

38
00:02:17,450 --> 00:02:21,260
Years later, Berners-Lee admitted it wasn’t really necessary.

39
00:02:21,280 --> 00:02:26,225
Programmers have typed those two extra characters billions of times since.

40
00:02:26,825 --> 00:02:29,458
Second, HTML: a simple markup language.

41
00:02:29,478 --> 00:02:33,949
Its tags describe what content is, a heading, a paragraph, a list,

42
00:02:33,969 --> 00:02:36,602
rather than exactly how it should look.

43
00:02:36,622 --> 00:02:39,255
And its most important tag is the link.

44
00:02:39,275 --> 00:02:43,317
Anyone can link to anything, without asking permission.

45
00:02:43,917 --> 00:02:48,564
Third, HTTP: the protocol that fetches a document by its URL.

46
00:02:48,584 --> 00:02:52,007
The first version was almost comically small.

47
00:02:52,027 --> 00:02:55,297
The browser sent one line: GET, and a path.

48
00:02:55,317 --> 00:02:58,831
The server sent back the HTML and hung up.

49
00:02:59,431 --> 00:03:01,098
Address, document, delivery.

50
00:03:01,118 --> 00:03:04,411
Nearly everything on the web still touches those three,

51
00:03:04,431 --> 00:03:07,923
even when they’re buried under layers of abstraction.

52
00:03:10,223 --> 00:03:13,570
To make it real, Berners-Lee wrote both ends himself,

53
00:03:13,590 --> 00:03:19,035
on a NeXT computer: a web server, and the first web browser, called WorldWideWeb.

54
00:03:19,235 --> 00:03:23,274
The server had a hand-written label on it. This machine is a server.

55
00:03:23,294 --> 00:03:24,847
Do not power it down!

56
00:03:25,447 --> 00:03:30,158
So that anyone could try it, even from a plain text terminal, Nicola Pellow,

57
00:03:30,178 --> 00:03:35,645
a student on placement at CERN, wrote a line-mode browser that ran almost anywhere.

58
00:03:35,845 --> 00:03:41,124
In August 1991, Berners-Lee announced the web on Internet newsgroups.

59
00:03:41,144 --> 00:03:45,809
And on April 30th, 1993, CERN made the software royalty-free,

60
00:03:45,829 --> 00:03:50,353
for anyone to use and build on. No permission, no fees.

61
00:03:52,453 --> 00:03:55,868
People saw the power of it quickly, and the web grew fast.

62
00:03:56,068 --> 00:03:58,706
The first big extension was media.

63
00:03:58,726 --> 00:04:05,194
In 1993, a new img tag let browsers like Mosaic put pictures right inside the page,

64
00:04:05,214 --> 00:04:08,016
each one fetched by its own URL.

65
00:04:08,216 --> 00:04:12,308
At that point it wasn’t just hypertext anymore. It was hypermedia.

66
00:04:12,328 --> 00:04:17,113
Audio, video, fonts, and much more followed, all addressed the same way.

67
00:04:19,213 --> 00:04:20,352
Here’s a fun fact.

68
00:04:20,372 --> 00:04:22,864
The first browser wasn’t just a viewer.

69
00:04:22,884 --> 00:04:24,924
WorldWideWeb was also an editor.

70
00:04:24,944 --> 00:04:29,881
You could change a page, and make links, as easily as you could read it.

71
00:04:30,081 --> 00:04:34,837
That seems odd now, but a word processor both shows and edits documents.

72
00:04:34,857 --> 00:04:38,275
The web was meant to be written, not just read.

73
00:04:38,475 --> 00:04:41,948
Your browser still has that power. Open the console,

74
00:04:41,968 --> 00:04:46,903
set document.designMode to “on,” and the whole page becomes editable.

75
00:04:47,803 --> 00:04:50,841
It only changes your copy. But that’s the lesson.

76
00:04:50,861 --> 00:04:54,897
Everything that reaches the browser can be inspected and changed.

77
00:04:54,917 --> 00:04:57,517
The client side is not under your control,

78
00:04:57,537 --> 00:05:00,583
and the network in between is nearly as bad.

79
00:05:01,183 --> 00:05:03,634
We still publish all the time, of course.

80
00:05:03,654 --> 00:05:08,335
We just do it through apps, like a social feed or a content management system,

81
00:05:08,355 --> 00:05:11,488
instead of editing pages in the browser itself.

82
00:05:13,788 --> 00:05:15,037
Next came programs.

83
00:05:15,057 --> 00:05:19,245
First on the server, with the Common Gateway Interface, or CGI,

84
00:05:19,265 --> 00:05:24,307
which let a web server run a program and send back whatever it printed.

85
00:05:24,507 --> 00:05:28,792
Then in the browser, in 1995, with Java applets and JavaScript.

86
00:05:28,812 --> 00:05:33,507
Brendan Eich built the first version of JavaScript in about ten days,

87
00:05:33,527 --> 00:05:37,927
and despite the name, it has almost nothing to do with Java.

88
00:05:38,127 --> 00:05:39,418
This is a big shift.

89
00:05:39,438 --> 00:05:42,303
A web of documents became a web of programs,

90
00:05:42,323 --> 00:05:45,573
and programs need things documents never did.

91
00:05:46,073 --> 00:05:48,912
They need to remember you between requests.

92
00:05:48,932 --> 00:05:51,770
HTTP forgets everything, so we got cookies,

93
00:05:51,790 --> 00:05:56,677
named after the magic cookies Unix programmers passed back and forth.

94
00:05:56,877 --> 00:06:01,879
They handle passwords and payments, so connections needed encryption.

95
00:06:01,899 --> 00:06:04,601
Today that’s TLS, the S in HTTPS.

96
00:06:04,801 --> 00:06:07,056
And they have to pay for themselves.

97
00:06:07,076 --> 00:06:09,836
One of the first banner ads went up in 1994,

98
00:06:09,856 --> 00:06:14,385
and almost half the people who saw it clicked. Those days are long gone,

99
00:06:14,405 --> 00:06:19,630
but advertising and analytics still shape nearly every decision in web development,

100
00:06:19,650 --> 00:06:21,656
whether we admit it or not.

101
00:06:23,956 --> 00:06:28,833
Remember what the web was built to be. Open. Decentralized. Free to use.

102
00:06:28,853 --> 00:06:32,213
Nobody needed a vendor’s approval to publish.

103
00:06:32,413 --> 00:06:37,439
At the opening of the 2012 London Olympics, Berners-Lee put it in four words.

104
00:06:37,459 --> 00:06:39,135
This is for everyone.

105
00:06:40,035 --> 00:06:42,084
Today that web is under strain.

106
00:06:42,104 --> 00:06:46,822
Power has concentrated in a few huge platforms, pages have grown heavy,

107
00:06:46,842 --> 00:06:50,212
and tracking follows people from site to site.

108
00:06:50,412 --> 00:06:53,649
Some of that comes from our own choices as developers.

109
00:06:53,669 --> 00:06:55,699
Some of it, we’re even paid to do.

110
00:06:55,719 --> 00:07:00,120
It’s easy to build against the grain of the medium without noticing.

111
00:07:02,220 --> 00:07:05,048
That’s the point of this course. Your choices matter.

112
00:07:05,068 --> 00:07:09,667
And to make good ones, you have to understand the medium before you build on it.

113
00:07:09,967 --> 00:07:15,878
URLs, HTML, and HTTP. A client you don’t control. A network you can’t trust.

114
00:07:15,898 --> 00:07:19,163
And a web that was built for everyone.

115
00:07:19,763 --> 00:07:23,872
Next, we’ll follow a single page load from the user’s side of the screen,

116
00:07:23,892 --> 00:07:26,228
and see who falls off along the way.

