The trick that really opened my eyes was this:
$ telnet google.com 80
Trying 142.250.70.238...
Connected to google.com.
Escape character is '^]'.
GET / HTTP/1.1
HTTP/1.1 200 OK
Then adding a couple of headers - and realising that it really was just text. You can really tell the difference with young developers who've made that leap.