HTTP-Header: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Request Anfragen=
 +
*Es gibt zwei Arten von Anfragen GET und POST
 +
==Get==
 +
*Bei Get werden die Daten die gesendet werden sollen, direkt in die URL geschrieben.
 +
*etwa so www.xinux.de/register.php?firstname=thomas&name=will&age=55&gender=male
 +
*Sämtliche vom Benutzer eingegebenen Informationen werden so offen übermittelt wie die URL selbst
 +
===Vorteile===
 +
*URL-Parameter können zusammen mit der Website-Adresse gespeichert werden.
 +
*Suchanfrage als können als Lesezeichen anlegt werden
 +
*Die Seite lässt sich bei Bedarf auch über den Browserverlauf wieder zurückholen.
 +
===Nachteile===
 +
*fehlende Datenschutz.
 +
*mitgesendeten URL-Parameter sind für jedermann in der Browser-Adresszeile sichtbar
 +
*unverschlüsselt im Browserverlauf, im Cache und im Logfile des Servers abgelegt.
 +
*kann keine binäre Daten enthalten
 +
 +
==POST==
 +
*schreibt die URL-Parameter in den HTTP-Request
 +
*für Benutzer nicht sichtbar.
 +
*Umfang der POST-Anfragen ist unbeschränkt
 +
===Vorteile===
 +
*wenn sensible Daten an den Server zu übermitteln ist die POST-Methode die bessere Wahl
 +
*Daten werden nicht im Cache gespeichert
 +
*Daten erscheinen nicht im Browserverlauf.
 +
*Man kann auch binäre Daten so übetragen
 +
===Nachteile===
 +
*Bei einer Aktualisierung einer Webseite mit einem Formular müssen die Formulardaten nochmals übermittelt werden
 +
*Gefahr, dass Daten versehentlich mehrmals gesendet werden
 +
*Es gibt Mechanismen die solche Probleme abfangen
 +
=Beispiele von Headern=
 +
 +
 
=Allgemein=
 
=Allgemein=
 
HTTP-Header-Felder liefern erforderlichen Informationen über die Anforderung oder eine Antwort, oder über das Objekt im Nachrichtentext gesendet.  
 
HTTP-Header-Felder liefern erforderlichen Informationen über die Anforderung oder eine Antwort, oder über das Objekt im Nachrichtentext gesendet.  
Zeile 6: Zeile 38:
 
*Server-Antwort-Header: Diese Header-Felder haben nur Geltung für Antwortnachrichten.
 
*Server-Antwort-Header: Diese Header-Felder haben nur Geltung für Antwortnachrichten.
 
*Entität-header: Diese Header-Felder definieren Metainformationen über das Daten-Inhalts oder, wenn kein Körper vorhanden ist, über die Ressource durch die Anforderung identifizierte.
 
*Entität-header: Diese Header-Felder definieren Metainformationen über das Daten-Inhalts oder, wenn kein Körper vorhanden ist, über die Ressource durch die Anforderung identifizierte.
* Bestandteile der HTTP-Protokollheaders
+
==Client-Anfrage==
* Erlauben die Übergabe zusätzlicher Informationen bei einer Anfrage (Client) oder einer Antwort (Server).
+
<pre>
* Syntax: Name und durch einen Doppelpunkt getrennter Wert. Beispiel -> Accept-Language: *
+
GET / HTTP/1.1
* Duch Einsatz spezieller Header läßt sich die Sicherheit von Websites erhöhen. (zum Beispiel Festlegung, dass die Seite nur per HTTPS aufgerufen werden darf)
+
Host: www.xinux.de
 +
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0
 +
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
 +
Accept-Language: en-US,en;q=0.5
 +
Accept-Encoding: gzip, deflate
 +
Upgrade-Insecure-Requests: 1
 +
Te: trailers
 +
Connection: close
 +
</pre>
 +
;Erklärungen
 +
*Host: Domain-Name des Servers
 +
*User-Agent: Welcher Browser wird genutzt
 +
*Accept: Welche Inhaltstypen der Client verarbeiten kann
 +
*Accept-Language: Gewünschte Sprachversion
 +
*Accept-Encoding: Welche komprimierten Formate werdem unterstützt
 +
*Connection: Soll eine persistende oder eine nicht persistende Verbindung aufgebaut werden
 +
 
 +
==Server Antwort==
 +
<pre>
 +
HTTP/2 200 OK
 +
Content-Type: text/html; charset=UTF-8
 +
Date: Sun, 13 Jun 2021 19:14:20 GMT
 +
Link: <https://www.xinux.de/index.php?rest_route=/>; rel="https://api.w.org/"
 +
Link: <https://www.xinux.de/index.php?rest_route=/wp/v2/pages/10>; rel="alternate"; type="application/json"
 +
Link: <https://www.xinux.de/>; rel=shortlink
 +
Server: Apache/2.4.38 (Debian)
 +
Vary: Accept-Encoding
 +
X-Powered-By: PHP/7.4.16
 +
Content-Length: 13220
 +
</pre>
 +
;Erklärungen
 +
*Content-Type: MIME-Typ der angeforderten Datei
 +
*Date: Zeitpunkt der Response
 +
*Server: Webserver Version
 +
*Link: "Verwandte“ Dateien oder Ressourcen werden mitgeteilt (z. B. einen RSS-Feed, einen Favicon, Copyright-Lizenzen etc)
 +
*Vary: Sagt, welche Header-Felder als variierend betrachtet werden sollen, falls eine Datei aus dem Cache angefordert wird.
 +
*X-Powered-By: Gibt an, auf welcher Technologie (ASP.NET, PHP, JBoss u. a.) die Webapplikation basiert
 +
*Content-Length: Länge des Request-Bodys
 +
 
 +
=Quellen=
 +
*https://www.ionos.de/digitalguide/hosting/hosting-technik/http-header/
 +
*https://www.tutorialspoint.com/de/http/http_header_fields.htm
 +
*https://de.wikipedia.org/wiki/Liste_der_HTTP-Headerfelder
 +
*https://www.ionos.de/digitalguide/websites/web-entwicklung/get-vs-post/

Aktuelle Version vom 17. Juni 2021, 09:52 Uhr

Request Anfragen

  • Es gibt zwei Arten von Anfragen GET und POST

Get

  • Bei Get werden die Daten die gesendet werden sollen, direkt in die URL geschrieben.
  • etwa so www.xinux.de/register.php?firstname=thomas&name=will&age=55&gender=male
  • Sämtliche vom Benutzer eingegebenen Informationen werden so offen übermittelt wie die URL selbst

Vorteile

  • URL-Parameter können zusammen mit der Website-Adresse gespeichert werden.
  • Suchanfrage als können als Lesezeichen anlegt werden
  • Die Seite lässt sich bei Bedarf auch über den Browserverlauf wieder zurückholen.

Nachteile

  • fehlende Datenschutz.
  • mitgesendeten URL-Parameter sind für jedermann in der Browser-Adresszeile sichtbar
  • unverschlüsselt im Browserverlauf, im Cache und im Logfile des Servers abgelegt.
  • kann keine binäre Daten enthalten

POST

  • schreibt die URL-Parameter in den HTTP-Request
  • für Benutzer nicht sichtbar.
  • Umfang der POST-Anfragen ist unbeschränkt

Vorteile

  • wenn sensible Daten an den Server zu übermitteln ist die POST-Methode die bessere Wahl
  • Daten werden nicht im Cache gespeichert
  • Daten erscheinen nicht im Browserverlauf.
  • Man kann auch binäre Daten so übetragen

Nachteile

  • Bei einer Aktualisierung einer Webseite mit einem Formular müssen die Formulardaten nochmals übermittelt werden
  • Gefahr, dass Daten versehentlich mehrmals gesendet werden
  • Es gibt Mechanismen die solche Probleme abfangen

Beispiele von Headern

Allgemein

HTTP-Header-Felder liefern erforderlichen Informationen über die Anforderung oder eine Antwort, oder über das Objekt im Nachrichtentext gesendet.

Es gibt vier Arten von HTTP-Headern

  • Allgemein-Header: Diese Header-Felder haben allgemeine Anwendbarkeit sowohl für Anforderungs- und Antwortnachrichten.
  • Client-Anfrage-Header: Diese Header-Felder haben Anwendbarkeit nur für Anforderungsnachrichten .
  • Server-Antwort-Header: Diese Header-Felder haben nur Geltung für Antwortnachrichten.
  • Entität-header: Diese Header-Felder definieren Metainformationen über das Daten-Inhalts oder, wenn kein Körper vorhanden ist, über die Ressource durch die Anforderung identifizierte.

Client-Anfrage

GET / HTTP/1.1
Host: www.xinux.de
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Upgrade-Insecure-Requests: 1
Te: trailers
Connection: close
Erklärungen
  • Host: Domain-Name des Servers
  • User-Agent: Welcher Browser wird genutzt
  • Accept: Welche Inhaltstypen der Client verarbeiten kann
  • Accept-Language: Gewünschte Sprachversion
  • Accept-Encoding: Welche komprimierten Formate werdem unterstützt
  • Connection: Soll eine persistende oder eine nicht persistende Verbindung aufgebaut werden

Server Antwort

HTTP/2 200 OK
Content-Type: text/html; charset=UTF-8
Date: Sun, 13 Jun 2021 19:14:20 GMT
Link: <https://www.xinux.de/index.php?rest_route=/>; rel="https://api.w.org/"
Link: <https://www.xinux.de/index.php?rest_route=/wp/v2/pages/10>; rel="alternate"; type="application/json"
Link: <https://www.xinux.de/>; rel=shortlink
Server: Apache/2.4.38 (Debian)
Vary: Accept-Encoding
X-Powered-By: PHP/7.4.16
Content-Length: 13220
Erklärungen
  • Content-Type: MIME-Typ der angeforderten Datei
  • Date: Zeitpunkt der Response
  • Server: Webserver Version
  • Link: "Verwandte“ Dateien oder Ressourcen werden mitgeteilt (z. B. einen RSS-Feed, einen Favicon, Copyright-Lizenzen etc)
  • Vary: Sagt, welche Header-Felder als variierend betrachtet werden sollen, falls eine Datei aus dem Cache angefordert wird.
  • X-Powered-By: Gibt an, auf welcher Technologie (ASP.NET, PHP, JBoss u. a.) die Webapplikation basiert
  • Content-Length: Länge des Request-Bodys

Quellen