Przeglądarka pobiera z internetu nie tylko strony. W ciągu kilku sekund może otrzymać arkusz stylów, zdjęcie, czcionkę, plik JSON, nagranie audio i fragment filmu. Dla sieci wszystko to jest jednak ciągiem bajtów. Sam adres nie wystarcza, aby rozstrzygnąć, czy dane należy wyświetlić, odtworzyć, przekazać programowi czy zaproponować do pobrania.
Podstawową wskazówką jest typ mediów, powszechnie nazywany typem MIME. To krótka etykieta dołączona do odpowiedzi, na przykład text/html, image/jpeg albo audio/mpeg. Dzięki niej przeglądarka nie musi zgadywać przeznaczenia każdego zasobu, choć historia WWW sprawiła, że w praktyce czasem i tak zagląda do jego wnętrza.

MIME zaczęło się od poczty elektronicznej
Skrót MIME rozwija się jako Multipurpose Internet Mail Extensions, czyli wielozadaniowe rozszerzenia poczty internetowej. Pierwotna poczta elektroniczna była projektowana głównie z myślą o prostym tekście. Gdy użytkownicy zaczęli wysyłać znaki spoza podstawowego zestawu ASCII, obrazy i inne załączniki, wiadomość potrzebowała sposobu opisania swojej zawartości.
RFC 2045, opublikowane w listopadzie 1996 roku jako część zestawu dokumentów MIME, definiuje nagłówki opisujące strukturę wiadomości. Towarzyszące mu RFC 2046 porządkuje system typów mediów i ich początkowy zestaw. Mechanizm okazał się na tyle użyteczny, że typy MIME stały się jednym z podstawowych języków opisu treści także w WWW.
Dwie części jednej etykiety
Typ mediów ma zazwyczaj postać typ/podtyp. Pierwszy człon określa szeroką rodzinę danych, drugi bardziej konkretny format. text/html oznacza dokument HTML należący do rodziny tekstowej, image/png jest obrazem PNG, a application/json opisuje dane JSON traktowane jako zawartość dla aplikacji.
Nie jest to dowolna lista wymyślana osobno przez każdą przeglądarkę. Oficjalny rejestr typów mediów IANA gromadzi zarejestrowane nazwy w kategoriach takich jak tekst, obraz, dźwięk, wideo, czcionki czy aplikacje. Rejestr był zaktualizowany 9 października 2026 roku, co dobrze pokazuje, że nie jest to zamknięty katalog z początków internetu, lecz nadal rozwijana część jego infrastruktury.
Do typu można dopisać parametry. Najbardziej znanym jest zestaw znaków, na przykład text/html; charset=utf-8. Podtyp mówi wtedy, że serwer wysyła dokument HTML, a parametr pomaga prawidłowo zamienić bajty na litery. Błędna deklaracja kodowania była kiedyś częstą przyczyną „krzaczków” zamiast polskich znaków.
Content-Type: wiadomość od serwera do przeglądarki
W HTTP typ zasobu przekazuje nagłówek Content-Type. Gdy przeglądarka prosi o adres, serwer odsyła status, zestaw nagłówków i właściwą treść. Współczesna specyfikacja semantyki HTTP, RFC 9110, określa Content-Type jako informację o typie mediów reprezentacji oraz ewentualnych parametrach.
To rozdzielenie adresu od rodzaju danych jest bardzo praktyczne. URL nie musi kończyć się rozszerzeniem .jpg czy .mp3. Może wyglądać jak zwykła ścieżka lub zawierać identyfikator, a serwer nadal jednoznacznie opisze odpowiedź. Ten sam adres może nawet zwrócić inny format zależnie od uzgodnień między klientem a serwerem.
Warto odróżnić Content-Type od nagłówka Accept. Pierwszy opisuje to, co faktycznie znajduje się w odpowiedzi. Drugi pozwala klientowi wcześniej poinformować serwer, jakie typy potrafi obsłużyć lub preferuje. Aplikacja może na przykład zaakceptować kilka formatów obrazu, a serwer wybrać z nich najkorzystniejszy. Mechanizm ten nazywa się negocjowaniem treści. Nie każdy serwis z niego korzysta, ale dzięki niemu jeden adres może reprezentować zasób dostępny w różnych technicznych postaciach, bez tworzenia osobnego URL dla każdej z nich.
Gdy słuchacz wybiera stację w serwisie takim jak Radio Biz, odtwarzacz ostatecznie otrzymuje dane dźwiękowe albo listę prowadzącą do ich fragmentów. Typ odpowiedzi pomaga rozpoznać, czy chodzi o strumień MP3, AAC, playlistę HLS czy inny obsługiwany format. Nie decyduje sam o jakości ani zawartości programu, lecz mówi o technicznej postaci przesyłanych danych.
Dlaczego rozszerzenie pliku nie wystarcza
Na własnym komputerze przywykliśmy do nazw takich jak zdjecie.jpg i dokument.pdf. W sieci rozszerzenie bywa tylko częścią adresu, a czasem nie występuje wcale. Co więcej, nazwę można zmienić bez zmiany zawartości pliku. Obraz zapisany pod nazwą kończącą się na .txt nadal pozostaje obrazem.
Standard MIME Sniffing organizacji WHATWG stwierdza wprost, że rozszerzeń plików nie używa się do ustalania dostarczonego typu zasobu pobranego przez HTTP, ponieważ są zawodne i łatwe do podszycia. Punktem wyjścia jest wartość Content-Type przekazana wraz z odpowiedzią.
Dlatego administrator serwera musi prawidłowo skonfigurować mapowanie formatów. Jeśli arkusz CSS zostanie wysłany jako zwykły tekst albo skrypt JavaScript jako nieznany plik binarny, nowoczesna przeglądarka może odmówić użycia zasobu w oczekiwanym kontekście. Gdy plik otrzyma ogólny typ application/octet-stream, częstym rezultatem jest propozycja pobrania go zamiast wyświetlenia.
Przeglądarka czasem sprawdza pierwsze bajty
Internet zawiera miliony starszych i błędnie skonfigurowanych serwerów. Gdyby przeglądarki zawsze bezwzględnie ufały deklaracji, wiele stron przestałoby działać. Z tego powodu powstało „wąchanie” typu, czyli MIME sniffing: kontrolowane rozpoznawanie formatu na podstawie charakterystycznych początkowych bajtów.
Standard WHATWG opisuje wzorce dla różnych rodzin plików. Dokument PDF zwykle zaczyna się od podpisu %PDF-, obrazy mają własne sygnatury, a formaty audio i wideo mogą zostać rozpoznane w przeznaczonym dla nich kontekście. Nie jest to jednak swobodne zgadywanie przez każdy program. Ujednolicony algorytm ma zapewnić podobne zachowanie przeglądarek i ograniczyć ryzyko błędnej interpretacji.
Pomyłka może być problemem bezpieczeństwa
Nieprawidłowy typ nie zawsze kończy się tylko źle wyglądającą stroną. Jeżeli serwis pozwala użytkownikom wgrywać pliki i wysyła je jako niewinny obraz lub tekst, a przeglądarka uzna zawartość za aktywny HTML, w pliku mógłby wykonać się kod. Standard MIME Sniffing wskazuje taki scenariusz jako źródło zagrożeń, w tym ataków typu cross-site scripting.
Dlatego współczesne mechanizmy bezpieczeństwa ograniczają zgadywanie w szczególnie wrażliwych miejscach. Liczy się nie tylko to, jakie bajty dotarły, lecz także w jakim kontekście mają zostać użyte: jako obraz, skrypt, arkusz stylów czy dokument otwierany w karcie. Serwer powinien wysyłać poprawny typ od początku, zamiast liczyć na tolerancję przeglądarki.
Mała etykieta, bez której sieć byłaby chaotyczna
Typ MIME jest niewidoczny podczas zwykłego korzystania z internetu, lecz uczestniczy niemal w każdym wczytaniu strony. Pomaga zdecydować, czy dane należy wyrenderować jako HTML, pokazać jako obraz, odtworzyć jako dźwięk, przekazać aplikacji czy zapisać na dysku.
To także dobry przykład ciągłości internetowych standardów. Rozwiązanie stworzone dla bogatszych wiadomości e-mail zostało wykorzystane przez WWW, a później rozwinięte dla kolejnych formatów i problemów bezpieczeństwa. Za prostym kliknięciem kryje się więc nie tylko plik, lecz również precyzyjna informacja mówiąca programowi, czym ten plik właściwie jest.