A picture with white and blue lettering on it

Ob Sie das Web scrapen oder eine API nutzen, es geht immer darum, HTTP-Anfragen zu senden und Antworten zu erhalten. Je genauer Ihre Anfrage spezifiziert ist, desto präzisere Daten erhalten Sie. Deshalb benötigen Sie Header. Sie bestehen aus Schlüssel-Wert-Paaren, die durch einen Doppelpunkt getrennt sind, und sind Bestandteile einer HTTP-Antwort, die zusätzliche Details wie den Inhaltstyp oder Anweisungen zur Zwischenspeicherung enthalten. Header helfen Ihnen, die benötigten Details zu erhalten oder Antworten zu filtern, damit Sie nie irrelevante sehen. In diesem Artikel lernen wir die praktischen Grundlagen zum Senden von HTTP-Headern mit cURL kennen und erfahren, wie Sie das bei Ihren Aufgaben unterstützt.

Warum cURL?

Nachdem Sie nun wissen, was HTTP-Header sind, schauen wir uns cURL kurz an. Es ist ein einfach zu bedienendes Befehlszeilentool, mit dem Daten zum Zielserver und zurück auf Ihren Computer übertragen werden können. Daher eignet es sich hervorragend zum Senden von Headern. Zu seinen Vorteilen zählen:

  • Es ist schlank.
  • Es unterstützt viele Protokolle, darunter HTTP(S), SMTP, FTP und weitere.
  • Es benötigt keine zusätzlichen Bibliotheken.
  • Es ist mit den meistgenutzten Betriebssystemen wie Windows, Linux und macOS kompatibel.
  • Es ist kostenlos und häufig bereits vorinstalliert.
  • Es verfügt über eine ausführliche Dokumentation und eine große Nutzergemeinschaft. Wenn Sie auf Schwierigkeiten stoßen, finden Sie daher schnell eine Lösung.

Deshalb wird cURL so häufig eingesetzt, obwohl es zahlreiche andere Tools zum Senden von HTTP-Headern gibt.  

Wann HTTP-Header gesendet werden sollten

Da Sie nun mit allen Werkzeugen vertraut sind, sehen wir uns die Anwendungsfälle für das Senden von HTTP-Headern an.

  • Authentifizierung und Autorisierung

Wenn Sie eine API aufrufen oder Inhalte anfordern, die eine Autorisierung erfordern, müssen Sie möglicherweise ein Token oder Ähnliches angeben, um Daten zu erhalten. Das Senden des Headers Authorization mit cURL liefert einem Server die nötigen Informationen, um Ihnen Zugriff zu gewähren. Verwenden Sie in Ihrer Anfrage die Option -H. Unten sehen Sie ein Beispiel für eine cURL-Anfrage an httpbin.org, einen speziellen Dienst für Anfragen und Antworten. 

Example of sending the Authorization header
  • Inhaltsaushandlung

Wenn Sie Inhalte in einem bestimmten Format wie JSON oder XML senden und ein Server sie korrekt interpretieren soll, müssen Sie den HTTP-Header Content-type in Ihre Anfrage aufnehmen. Der Zielserver weiß dann, wie der Inhalt verarbeitet werden muss, wodurch sich Fehler oder Verzögerungen möglichst vermeiden lassen.

Example of sending the Content-type header
  • CORS (ressourcenübergreifende Freigabe)

Eine Anwendung kann den Zugriff auf Dienste oder Daten davon abhängig machen, wer darauf zugreifen möchte. In solchen Situationen, in denen die Herkunft einer Anfrage entscheidend ist, können Sie die Herkunft in einem Origin HTTP-Header angeben. Verwechseln Sie das nicht mit der Authentifizierung. Die Anwendungsfälle sind ähnlich und treten oft gemeinsam auf, unterscheiden sich aber dennoch.

Example of sending the Origin header
  • User-Agent festlegen

Der Client-Typ, ob mobile oder Web-App, API usw., beeinflusst ebenfalls die Antwort, die Sie erhalten. Sie können den Client-Typ in Ihrer Anfrage festlegen und so die benötigte Antwort erhalten.

Example of sending the User-agent header
  • Cache-Control-Einstellungen anpassen

In vielen Situationen müssen Cache-Einstellungen verwaltet werden, und HTTP-Header können dabei helfen. Sie müssen lediglich einen Cache-control-Header in Ihre Anfrage aufnehmen und seinen Wert angeben. Antworten werden gemäß den von Ihnen festgelegten Einstellungen zwischengespeichert.

Example of sending the Cache-Control header
  • Benutzerdefinierte Anfragen senden

Manchmal benötigen die von Ihnen verwendeten Apps benutzerdefinierte Header, um Ihre Anfrage zu verarbeiten oder die gewünschten Aktionen auszuführen. Dann müssen Sie solche Header in Ihre Anfragen aufnehmen. Bisweilen sind sie auch zum Schutz vor Schwachstellen und Angriffen erforderlich. Lesen Sie vor der Verwendung einer App die Dokumentation, um zu wissen, welche benutzerdefinierten Header verfügbar und notwendig sind.

Example of sending the custom header
  • Bedingte Anfragen senden

Sie sollten bedingte Header verwenden, wenn Sie nur bestimmte Daten benötigen, die festgelegten Bedingungen entsprechen. Diese Header sparen Zeit, weil nur die erforderlichen Daten abgerufen werden, und schonen die Bandbreite, da keine GBs für unnötige Informationen verschwendet werden. If-Match oder If-Modified-Since sind Beispiele für solche Header. 

Example of sending the If-Match header

cURL: weitere Funktionen 

  • Mehrere Header senden

Manchmal müssen Sie mehrere Header für dieselbe Anfrage senden. Dann können Sie sie alle mit demselben cURL-Befehl aufführen. Denken Sie daran, bei jeder neuen Schlüssel-Wert-Paar-Eingabe die Option H zu verwenden.

Example of sending multiple headers
  • Antwort-Header prüfen

Die Antwort-Header des Zielservers zu sehen, ist für die Fehlerbehebung und Leistungsüberwachung nützlich. Sie liefern Informationen darüber, wie lange die Verarbeitung Ihrer Anfrage gedauert hat oder ob es Probleme bei der Authentifizierung gab. Sie können sie mit der Option -I oder –head anzeigen. Beide zeigen nur Header an. 

Example of checking response headers

Wenn Sie sowohl Header als auch Inhalte sehen möchten, verwenden Sie die Optionen -i oder –include.

Example of checking response headers and content
  • Leere Header senden

Einige APIs erfordern bestimmte Header in der Anfrage, auch wenn diese Header keine Werte haben. Manchmal bewirken leere Header ein bestimmtes Verhalten des Headers. Entwickler verwenden sie auch, um zu sehen, wie ein Server auf eine solche Situation reagiert, und um zu prüfen, dass keine Sicherheitslücken für Hacker offenstehen. Um einen solchen Header zu senden, geben Sie seinen Namen gefolgt von einem Semikolon ohne Wert an.

Example of sending empty headers
  • Einen Header entfernen

cURL fügt standardmäßig einige Header hinzu, etwa den User-Agent-Header. Wenn Sie ihn nicht benötigen und entfernen möchten, geben Sie einen Header-Namen gefolgt von einem Doppelpunkt ein, ohne einen Wert anzugeben.

Example of removing a header
  • Den ausführlichen Modus aktivieren

Diese Funktion wird verwendet, wenn Sie verstehen müssen, wie der Server Ihre Anfrage verarbeitet. Ist dieser Modus aktiviert, liefert cURL viele Details, darunter Angaben zu Anfrage und Antwort, HTTP-Methode, Version, Statuscode, Informationen zum Verbindungsaufbau und weitere. Dieser Modus ist für das Debugging nützlich, da er Informationen zu jedem Schritt der Kommunikation bereitstellt. Sie können ihn mit der Option -v oder –verbose aktivieren.

Activating the verbose mode
  • Header speichern

Für Debugging und Leistungsüberwachung müssen Header häufig gespeichert werden, um sie zu analysieren und zu dokumentieren. Sie können Header daher in einer Datei speichern und später verwenden. So geht es:

  1. Verwenden Sie die Optionen -d oder –dump-header.
  2. Wenn Sie auch den Inhalt der Anfrage speichern müssen, fügen Sie die Optionen -o oder –output hinzu.
  3. Vergessen Sie nach den Befehlen nicht, den Dateinamen anzugeben, unter dem Ihr Computer die Header speichern soll.
Saving HTTP headers

Hinweis: Im Allgemeinen wird bei HTTP-Headern nicht zwischen Groß- und Kleinschreibung unterschieden. Manchmal erwarten APIs jedoch bestimmte Header und funktionieren nur bei korrekter Groß- und Kleinschreibung. Prüfen Sie deshalb die Dokumentation sorgfältig, bevor Sie Header senden.

Proxys zum Senden von HTTP-Headern mit cURL

Wenn Sie das Web scrapen oder andere Aktivitäten durchführen, die zahlreiche Anfragen erfordern, können Probleme wie Anfragebeschränkungen oder geografisch bedingte Sperren auftreten. In diesem Fall sind Proxys Ihre Verbündeten, die Ihnen weltweit einen stabilen Zugriff ermöglichen. DataImpulse bietet beispielsweise ethisch beschaffte Proxys, die sich einfach integrieren und mit anderen Tools, einschließlich cURL, verwenden lassen. So können Sie so viele Anfragen senden, wie Sie benötigen, ohne auf Beschränkungen zu stoßen.

Fazit

Manchmal benötigen Sie keine speziellen oder teuren Tools, um Daten zu erhalten. cURL ist kostenlos verfügbar und ermöglicht es Ihnen, Ihre Anfragen so zu präzisieren, dass Sie schnell und ohne unnötige Details die gewünschten Informationen erhalten. Um den Prozess noch effektiver zu gestalten, können Sie cURL mit DataImpulse-Proxys kombinieren. Wir bieten Proxys mit einer Antwortzeit von 1 Sekunde zu einem budgetfreundlichen Pay-as-you-go-Preismodell. Klicken Sie oben rechts auf dem Bildschirm auf die Schaltfläche “Jetzt ausprobieren” oder kontaktieren Sie uns unter [email protected]

Share article: