MIME type to identyfikator rodzaju danych, np. text/html czy application/pdf, wskazujący sposób ich interpretacji.
Jak MIME type opisuje zawartość pliku
MIME type, nazywany także typem mediów lub typem zawartości, jest tekstowym identyfikatorem rodzaju danych przesyłanych między programami. Informuje aplikację, z jakim formatem ma do czynienia i jak powinna go interpretować. Przykład text/html oznacza dokument HTML, text/plain zwykły tekst, image/jpeg obraz JPEG, a application/pdf dokument PDF. Identyfikator nie opisuje nazwy pliku ani jego lokalizacji. Określa przede wszystkim format danych zapisanych w treści pliku lub komunikatu.
Typ MIME składa się zasadniczo z dwóch części rozdzielonych ukośnikiem: typu głównego oraz podtypu. Typ główny wskazuje szeroką kategorię danych, na przykład text, image, audio, video albo application. Podtyp doprecyzowuje format, na przykład html, css, png lub json. W niektórych przypadkach identyfikator zawiera również parametr, przykładowo text/html; charset=UTF-8. Parametr charset określa kodowanie znaków tekstowych, ale nie jest osobnym typem MIME.
Typ MIME w komunikacji HTTP
W przeglądarce internetowej najczęściej spotyka się typ MIME w nagłówku HTTP Content-Type. Serwer może zwrócić na przykład nagłówki Content-Type: text/html; charset=UTF-8 dla strony internetowej albo Content-Type: application/pdf dla pliku PDF. Przeglądarka odczytuje tę informację przed przetworzeniem treści i na tej podstawie wybiera sposób obsługi: renderowanie dokumentu, wyświetlenie obrazu, odtworzenie multimediów, uruchomienie parsera danych albo pobranie pliku.
Nagłówek Content-Type opisuje dane faktycznie przesyłane w danej odpowiedzi, natomiast nagłówek Accept wysyłany przez klienta może wskazywać typy treści, które klient potrafi obsłużyć. Przykładowo klient może wysłać Accept: application/json, oczekując odpowiedzi w formacie JSON. Serwer może wtedy wybrać właściwy wariant odpowiedzi i odesłać go z odpowiednim typem MIME. Wysyłanie nieprawidłowego albo zbyt ogólnego typu, takiego jak application/octet-stream, może spowodować pobieranie pliku zamiast jego wyświetlenia lub uniemożliwić wykonanie skryptu.
Rozszerzenie pliku a rzeczywisty format danych
Rozszerzenie, takie jak .html, .jpg, .css czy .pdf, jest nazwą zapisaną w systemie plików. MIME type jest natomiast informacją przekazywaną aplikacji, serwerowi lub przeglądarce. Te dwa elementy powinny być zgodne, ale nie są tym samym. Zmiana nazwy obraz.jpg na obraz.pdf nie zmienia formatu danych zapisanych wewnątrz pliku. Program może rozpoznać niezgodność na podstawie sygnatury pliku, struktury danych albo próby dekodowania zawartości.
System operacyjny i serwer WWW często ustalają typ MIME na podstawie rozszerzenia. Jeżeli konfiguracja zawiera błędne mapowanie, plik może otrzymać niewłaściwy nagłówek. Typowym skutkiem jest brak stylów CSS, ponieważ arkusz zostaje zwrócony jako zwykły tekst, albo błąd ładowania modułu JavaScript, gdy serwer odpowiada nieoczekiwanym typem. W przypadku plików przesyłanych przez formularz przeglądarka może przekazać typ MIME w części żądania multipart/form-data, lecz wartość ta pochodzi od klienta i nie powinna być traktowana jako pewne potwierdzenie rzeczywistego formatu.
Znaczenie MIME type przy diagnozowaniu problemów z plikami
Podczas diagnozowania problemu należy porównać rozszerzenie pliku, jego rzeczywistą zawartość oraz typ MIME zwracany przez serwer. Przydatne jest sprawdzenie nagłówków odpowiedzi HTTP w narzędziach deweloperskich przeglądarki albo poleceniem curl -I https://example.com/plik, które wyświetla nagłówki bez pobierania całej treści. Szczególną uwagę zwraca się na Content-Type, kod odpowiedzi HTTP, adres zasobu oraz ewentualne przekierowania. Jeżeli arkusz stylów ma typ text/html, może to oznaczać, że pod jego adresem zwracana jest strona błędu zamiast pliku CSS.
Nieprawidłowy MIME type może również wystąpić po przeniesieniu plików, zmianie konfiguracji serwera, instalacji dodatku albo aktualizacji oprogramowania obsługującego stronę. Warto sprawdzić, czy problem dotyczy jednego zasobu, całego katalogu czy wszystkich plików danego rodzaju. Oddzielnego sprawdzenia wymaga nagłówek X-Content-Type-Options: nosniff, ponieważ przy jego wartości nosniff przeglądarka ściślej respektuje typ podany przez serwer i może odmówić użycia zasobu, jeśli typ nie pasuje do oczekiwanego zastosowania. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC oraz ich podzespołów, w tym diagnozowaniem problemów z oprogramowaniem i obsługą plików na komputerach użytkowych.