Menu

12 november 2015

OS X: Het Netcat commando als mini webserver gebruiken

terminal logo OS X

Om een website te laten draaien onder OS X heb je een webserver zoals bijvoorbeeld MAMP nodig. Wanneer je slechts een enkele pagina wilt laten zien dan heb je niets meer nodig dan het standaard in OS X aanwezige nc (netcat) commando.

Maak een html pagina aan en bewaar deze als index.html, of gebruik het onderstaande commando om html bestand aan te maken met alleen een stukje tekst:

echo "appletips testpagina" > index.html

Open hierna OS X Terminal (Programma’s ▸ Hulpprogramma’s), type hierin het onderstaande commando:

sudo nc -l 80 < index.html

Als je hierna met een browser naar je eigen IP adres of localhost (127.0.0.1) gaat verschijnt eenmalig de tekst of de door jezelf gemaakte index.html op het scherm. Het commando dient te worden uitgevoerd in de map waarin het bestand index.html aanwezig.

netcat webpagina

Het is natuurlijk niet handig dat de pagina slechts eenmaal wordt weergegeven. Door een oneindige 'loop' toe te voegen aan het commando kun je meerdere HTTP aanvragen achter elkaar verwerken.

while true;do sudo nc -l 80 < index.html;done

Met behulp van ctrl + z kun je de oneindige loop onderbreken.

De bovenstaande stappen geven je natuurlijk geen webserver die tientallen request per seconde kan verwerken maar kan wel handig voor test doeleinden.

Meer over terminal kun je hier terugvinden.







Reacties


  • Sara 12 november 2015 om 10:49

    MAMP is geen server, maar een stack van Apache (server), MySQL en PHP. Het enige dat je nodig hebt voor een simpele HTML pagina is Apache, en dat staat al op een mac.
    In terminal zet je Apache aan door sudo apachectl start (uit met stop in plaats van start, restart met restart in plaats van start).

    Zet je pagina(s) in de map /Library/WebServer/Documents/ (system Library, niet de user Library).

    Bezoek je pagina via je browser op 127.0.0.1 of localhost.

  • Daan 12 november 2015 om 17:52

    Of simpelweg:

    python -m SimpleHTTPServer

Een reactie toevoegen: