Benito Juarez: Binärressource in HTTP

Hallo zusammen,

ich war bis dato immer der Überzeugung, dass Binärressourcen im HTTP-Protokoll generell Base64-Kodiert werden. Nun habe ich etwas mit einem Java-HttpClient rumgespielt und mir dabei den Content angesehen. Der Content (ein PNG-Bild) war nicht kodiert, da standen die tatsächlichen Bytes der Datei drin. Kann aber auch sein dass mir die Java-Klasse java.net.HttpURLConnection das automatisch decodiert. Weiß jemand ob der HTTP-Response tatsächlich nicht Base64-kodiert ist?

Grüße BJ

akzeptierte Antworten

  1. Der Bezeichner HTTP ist tatsächlich irreführend, denn HTTP überträgt nicht nur Hypertext sondern Bytes beliebiger Wertigkeiten (Binaries). also auch Bilder, Videos usw.

  2. Tach,

    Weiß jemand ob der HTTP-Response tatsächlich nicht Base64-kodiert ist?

    Base64 wird genutzt um Binärdaten als Textdaten zu kodieren, z.B. für textbasierte Protokolle wie E-Mail; HTTP ist nicht textbasiert, sondern kann mit Binärdaten umgehen, deswegen gilt: „HTTP does not use the Content-Transfer-Encoding (CTE) field of RFC 2045. Proxies and gateways from MIME-compliant protocols to HTTP MUST remove any non-identity CTE ("quoted-printable" or "base64") encoding prior to delivering the response message to an HTTP client.“ – RFC2616. In den textbasierten HTTP-Headern kann es an ein paar Stellen vorkommen, dass Daten Base64 kodiert werden.

    mfg
    Woodfighter

    1. alles klar, danke für die Info. der Thread kann geschlossen werden.