HTTP Get Request

  • Ein http-client kann genauso gut auch eine Server oder Desktopanwendung sein.

    Mal als Beispiel: Du automatisierst ein kleines Gartengewächshaus. Deine lokalen Sensoren erfassen zwar den derzeitigen Zustand aber du möchtest Wasser sparen, indem du nicht bewässerst, wenn in den nächsten Tagen sowieso Regen angesagt ist. Um diese Information zu bekommen sendet die Anlage täglich eine GET Anfrage an einen Internetwetterdienst.

    Auch viele Datenbanken und ähnliches bieten häufig http/s als Übertragungsprotokoll an. Dieses Thema ist also gar nicht so unüblich.
  • Ok. Ich habe so skeptisch gefragt weil wenn ich z.B.

    JavaScript-Quellcode

    1. const https = require('https')
    2. const fs = require('fs');
    3. https.get(Object.assign(new URL('https://example.org'), {
    4. headers: {
    5. 'Content-Type': 'application/x-www-form-urlencoded',
    6. 'X-Information': 'Hello World!',
    7. }
    8. }), res => {
    9. console.log('test')
    10. })
    Alles anzeigen
    mit npm starte dann gibt er kurz "test" aus und wird wieder beendet. Wie soll denn die GET-Routine für sich genommen, ohne einen Dienst der diese bereitstellt, funktionieren ? Oder wie soll ich denn die gesendete Seite im Browser aufrufen wenn npm sofort beendet wird?

    Ich wollte mal den https server ausprobieren - wie erstelle ich mir ein Zertifikat? Kennst du letsencrypt b.z.w certbot ? Brauch ich das überhaupt wenn ich den Lokal teste? - Ich mach dann damit ein neues Thema auf -

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von vision27 ()

  • Lokal ist http ausreichend. Für Zugriff von Online würde ich schon https erzwingen. Ich verwende auch letsencrypt, allerdings sind meine Node-Apps mit einem Reverseproxy über http verbunden und dieser hat die SSL Zertifikate und kommuniziert mit https.

    Du kannst dir selbst signierte Zertifikate mit openssl erstellen. Diese müsstest du dann aber auf jedem Klienten installieren. Hier mal eine Anleitung dazu.


    vision27 schrieb:

    Wie soll denn die GET-Routine für sich genommen, ohne einen Dienst der diese bereitstellt, funktionieren?
    Gar nicht. Das hier ist ja auch nur ein Beispiel. Natürlich müsste die richtige Implementierung einen tatsächlich existierenden Endpunkt adressieren, der aber nicht zwangsläufig auf dem selben Server implementiert sein muss.