Toto je starší verze dokumentu!
Chyná hlavička HTTP Content-Type
Otevřená data se vystavují na webu a jsou přístupná typicky přes protokol HTTP(S).
Ten má svá pravidla, která je pro správné fungování webu nutné dodržovat.
Jedno z pravidel se týká indikace toho, jaký je formát zdroje (stránky, souboru) je přenášen.
Webový server tedy v odpovědi na požadavek klienta na stažení souboru posílá nejen obsah samotný, ale i metainformace, tzv. HTTP hlavičky.
Ty si můžeme zobrazit pomocí standardního nástroje curl: curl -I <URL>, nebo ve vývojářské konzoli běžného webového prohlížeče.
V jedné z nejdůležitějších hlaviček server klientovi sděluje, v jakém formátu jsou přenášená data.
Jedná se o HTTP hlavičku Content-Type a hodnotou v této hlavičce je tzv. Media Type, nebo také MIME Type, který například pro CSV soubory je text/csv.
Je-li tato hlavička nastavena špatně, může dojít k chybné interpretaci přenášených dat.
Hodnota v této hlavičce by tedy měla odpovídat jak přenášenému obsahu, tak také hodnotě uvedené v metadatech distribuce datové sady.
Toto se týká každého zdroje na webu, v kontextu otevřených dat tedy zejména souborů s daty, datových schémat, podmínek užití a dokumentací datových sad.
Seznam nejpoužívanějších datových typů a odpovídajících MIME typů
Úplný seznam MIME typů spravuje IANA - Autorita pro přidělování čísel (identifikátorů) na Internetu.
| Formát dat | MIME-typ |
|---|---|
| CSV soubor | text/csv |
| Schéma pro CSV dle CSV on the Web | application/csvm+json |
| Schéma pro CSV dle Table Schema | application/json |
| JSON soubor | application/json |
| Schéma pro JSON soubor | application/json |
| XML soubor s převážně strukturovaným obsahem | application/xml |
| XML soubor s převážně textovým obsahem | text/xml |
| Schéma pro XML dle XML Schema | application/xml |
| RDF soubor v serializaci Turtle | text/turtle |
| RDF soubor v serializaci TriG | application/trig |
| RDF soubor v serializaci N-Triples | application/n-triples |
| RDF soubor v serializaci N-Quads | text/turtle |
| RDF soubor v serializaci JSON-LD | application/ld+json |
| RDF soubor v serializaci RDF/XML | application/rdf+xml |
Seznam nejčastějších chyně používaných MIME typů
Zde uvádíme MIME typy, se kterými se nejčastěji setkáváme u chybně poskytovatných otevřených dat.
| Formát dat | MIME-typ |
|---|---|
| HTML stránka | text/html |
| Proud osmic (bajtů) | application/octet-stream |
Řešení
Je třeba nakonfigurovat webový server tak, aby soubory CSV poskytoval se správnou hlavičkou Content-Type: text/csv; charset=utf-8.
Například pro webový server nginx je třeba použít v konfiguraci charset utf-8; a ujistit se, že v hodnotě charset-types je uvedeno text/csv.