webbutveckling-backend

The markdown behind the website for webbutvckling backend

Internets protokoller

Torsdag den 10:e januari 2019

TCP/IP, Http, https, http/2 och DNS

Lektionsplan

Lektion från kl. 8:30 till kl. 16:00

  1. Quiz
  2. Genomgång av dagens ämnen (Internets protokoller)
  3. Genomgång av övning till idag.
  4. Projekt 1

Kurslitteratur

What Are Network Protocols?

Comic zine: Networking! ACK! - by Julia Evans

TCP/IP

HTTP

DNS

Extra kurslitteratur

Detta är inspiration till material man kan läsa för att öka chansen för VG.

TCP/IP

HTTP

DNS

Frivillig övning

Telnet en webserver

Det är möjligt att manuellt förbinda sig till en webbserver, och denna övning visar vad en webbläsare gör bakom det fina skalet.

Först måsta man se till att programvaran Telnet aktiverat i Windows. Windows 10: Enabling Telnet Client

Det är möjligt att testa detta med vilken som helst webbserver på nätet, stackoverflow är bara ett exempel:

Starta en kommandoprompt eller powershell, detta exempel kommer att starta telnet klienten och öppna en förbindelse till servern stackoverflow.com via port 80. Skriv:

telnet stackoverflow.com 80

Skärmen blir blank, det betyder att du har förbindelse till servern och att du nu kan skicka komandon till webserven, skriv så (du ser inte vad du skriver):

GET /questions HTTP/1.0
Host: stackoverflow.com

Och tryck enter två gångar (två tomma rader). Du borde nu få ett svar från servern (högst sannolikt ett HTTP status 301, varför?).

Testa med en websida efter eget val, och eventuellt att ändra på input till servern.

Programmera en simple webbserver

Det är möjligt at .NET och .NET Core väldigt enkelt att programmera en egen webbserver. Denna övning handlar om att ta koden i exemplet under och lägga in det i en konsol applikation (och få det att bygga och funka).

HttpListener Class

När programmet är klart kan ni starta det med kommandon (beroende på hur ni har lagt upp projektet):

MinWebbserver.exe http://localhost:3000/

Nu kör webbservern lokalt på eran dator, och ni kan nu tillgå den med en vanlig webbläsare eller telnet :)

telnet localhost 3000

Ni borde få ett svar med:

GET / HTTP/1.0
Host: localhost

Testa eventuellt att bygga ut webbservern så att den kan svara på olika anrop eller läsa en fil från disk.

Projekt

Försätt på projekt 1