Wysyłanie XHTML jako XHTML

Jeżeli dokument napisany zgodnie ze specyfikacją XHTMLa wysyłany jest do przeglądarki jako text/html niczym wtedy nie różni się od zwykłego HTML, bo interpretowany jest przez przeglądarkę jako HTML, który zawiera błędy składniowe (HTML nie należy do rodziny XML).

Zawartość pliku (np. DOCTYPE) nie definiuje sposobu interpretacji dokumentu przez przeglądarkę, bo przeglądarka przed rozpoczęciem czytania pliku musi już wiedzieć w jaki sposób go czytać.

Poprawną interpretację można zapewnić jedynie poprzez wysyłanie XHTML z odpowiednim MIME Typeapplication/xhtml+xml. Typ przesyłany jest w nagłówkach HTTP, które są niewidoczne dla użytkownika i ich ustawienie wymaga specjalnej konfiguracji serwera.

Kompatybilność wstecz Bug w IE

Nie wszystkie przeglądarki i roboty wyszukiwarek potrafią obsługiwać XHTML. Im, dla kompatybilności, można wysyłać XHTML jako HTML (co jednak pozbawia XHTML wszelkich zalet nad HTML).

Czy przeglądarka potrafi obsłużyć XHTML można wykryć sprawdzając zawartość nagłówka Accept, który będzie zawierał application/xhtml+xml.

Safari, która rozumie XHTML dostarcza w Accept jedynie ciąg: */*. W tym przypadku trzeba wspomóc się wykrywaniem przeglądarki za pomocą User-Agent (np. szukając ciągu "WebKit")

Na niektórych serwerach może wystarczyć zmiana rozszerzenia pliku na *.xhtml. W pozostałych przypadkach potrzeba użyć skryptu lub zmienić konfigurację serwera.

Skrypt PHP serwujący XHTML na podstawie nagłówka Accept.

Powrót do wprowadzenia.

Pytania? Komentarze? Napisz na forum kursu lub edytuj tę stronę.


Zmodyfikowano: 22.05.2007, 07:47