W tym artykule
Czym jest typ MIME?
Typ MIME (Multipurpose Internet Mail Extensions type), zwany również typem mediów, to standardowa etykieta wskazująca naturę i format pliku lub strumienia danych. Pierwotnie zaprojektowane dla załączników e-mail, typy MIME są teraz fundamentalne dla sposobu, w jaki przeglądarki internetowe, serwery i API komunikują się w kwestii formatów treści.
Każda odpowiedź HTTP zawiera nagłówek Content-Type z typem MIME, który informuje przeglądarkę, jak obsługiwać dane — czy renderować je jako HTML, wyświetlać obraz, odtwarzać dźwięk, pobierać plik czy parsować jako JSON.
Struktura typu MIME
Typ MIME składa się z typu, podtypu i opcjonalnych parametrów, zgodnie z formatem: typ/podtyp;parametr=wartość.
- Typ — ogólna kategoria: text, image, audio, video, application, multipart, font lub model
- Podtyp — konkretny format w ramach typu: html, png, mp4, json, pdf, octet-stream
- Parametry — opcjonalne pary klucz-wartość: charset=utf-8 dla typów tekstowych, boundary dla typów multipart
Wypróbuj za darmo — bez rejestracji
Wyszukaj typ MIME →Popularne typy MIME
Setki typów MIME są zarejestrowane w IANA (Internet Assigned Numbers Authority). Oto najczęściej używane.
- text/html — dokumenty HTML, fundament każdej strony internetowej
- application/json — dane JSON, standardowy format komunikacji REST API
- image/png i image/jpeg — dwa najpowszechniejsze formaty obrazów w internecie
- application/pdf — dokumenty PDF, powszechnie używane do dokumentów do druku
- application/octet-stream — ogólne dane binarne, używane gdy konkretny typ jest nieznany lub do pobierania plików
Jak działa wyszukiwanie typów MIME
Wyszukiwanie typów MIME mapuje rozszerzenia plików na odpowiadające im typy MIME i odwrotnie.
- Rozszerzenie na MIME — dla rozszerzenia pliku takiego jak .png wyszukiwanie zwraca image/png
- MIME na rozszerzenie — dla typu MIME takiego jak application/pdf wyszukiwanie zwraca .pdf
- Wykrywanie zawartości — gdy rozszerzenia są brakujące lub mylące, niektóre narzędzia używają liczb magicznych (bajtów nagłówka pliku) do wykrywania rzeczywistego typu zawartości
Typy MIME w programowaniu webowym
Prawidłowe typy MIME są niezbędne dla bezpieczeństwa, wydajności i funkcjonalności stron internetowych.
- Nagłówek Content-Type — serwery muszą wysyłać prawidłowy typ MIME dla każdej odpowiedzi. Serwowanie JavaScript jako text/html może tworzyć luki XSS
- X-Content-Type-Options: nosniff — ten nagłówek bezpieczeństwa zapobiega zgadywaniu typów MIME przez przeglądarki, wymuszając typ zadeklarowany przez serwer
- Nagłówek Accept — klienci wysyłają nagłówki Accept, aby poinformować serwery, jakie typy treści mogą obsługiwać, umożliwiając negocjację treści
Często zadawane pytania
Jaka jest różnica między typem MIME a Content-Type?
Content-Type to nagłówek HTTP zawierający wartość typu MIME. Typ MIME to identyfikator formatu (np. application/json), podczas gdy Content-Type to nazwa nagłówka przenoszącego tę wartość w komunikacji HTTP.
Czy mogę stworzyć własny typ MIME?
Tak, używając podtypów specyficznych dla dostawcy z prefiksem vnd. (np. application/vnd.mycompany.myformat) lub podtypów osobistych z prefiksem prs. Typy eksperymentalne używają prefiksu x-, choć ta konwencja jest wycofywana.
Dlaczego mój serwer zwraca application/octet-stream dla znanych typów plików?
Serwer nie ma mapowania dla tego rozszerzenia pliku w konfiguracji typów MIME. Dodaj prawidłowe mapowanie do konfiguracji serwera webowego (nginx.conf, .htaccess lub middleware Express).