MozillaPL.org - polskie centrum Mozilli

Główne menu:

float:left - rozmieszczenie bloków - BUG??

Dyskusje na temat standardów WWW i zgłoszenia stron niedziałających poprawnie w przeglądarkach z rodziny Mozilli (w tym Mozilla Firefox)

Moderator: Pomocy?!

Postautor: ziem » 11 listopada 2005, 09:48

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

Gedi pisze:Twoja strona NIE jest dokumentem XML, wbij to sobie do głowy. O tym co decyduje o typie dokumentu jest MIME. Dla typu XHTML masz mieć "application/xhtml+xml", dla XML masz mieć "text/xml" lub "application/xml", dla HTML masz mieć "text/html".

Twój dokument wysyła "text/html" i tak jest parsowany. HTML -> *html, XHTML -> *xhtml, XML -> *xml. Nadal nie wiesz o co chodzi :). Jak nie wiesz zmień rozszerzenie swojego pliku na *xhtml lub zmuś serwer do wysłania typu MIME "application/xhtml+xml".

Zajec pisze:No niezupełnie. O tym czym jest wysyłany plik _decyduje mimetype_ - co widzę, że zrozumiał Gedi. Pomyśl:
czy jeśli wyślę plik o treści "TO JEST ARCHIWUM RAR" jako text/plain oznacza, że plik stanowi faktycznie archiwum?

Pozwólcie sobie coś wytłumaczyć:
1. dokument zaczyna się deklaracją xml. Tu jest ustawiana strona kodowa, ta z meat jest ignorowana
2. potem pojawia się doctype - tu parser decyduje, o tym, co jest przetwarzane - element główny dokumentu XML
3. do znacznika <meta http-equiv="Content-Type" ... nie da się dotrzeć, bez przetworzenia tego co powyżej. Czyli odczytując go - praser jest już w dokumencie XML, albo przetwarza dokument niezgodnie z jefgo formatem.

Przeczytajcie uważnie, co piszę - że plik leżący na twardym dysku, jeśli nawet ma wpisane w HTTP-equiv dowolne bzdury - jest przetwarzany poprawnie (np przez Firefoxa), bo MUSI być przetwarzany jako XML od wczytania pierwszej linii.

Problem się pojawi jeśli przeglądarka ZANIM dostanie dokument otrzyma nagłówek HTTP z błędnym określeniem zawartości mime. Wtedy odczyta poprawny dokument XML, jako coś innego, JASNE? To nie będzie znaczyło, że dokument ten nie jest poprawnym XMLem, tylko, że przeglądarka go niepoprawnie przetwarza (bo dostała błędny mime).
ziem
 
Posty: 57
Z nami od: 11 października 2003, 17:42
Lokalizacja: Skądinąd

Postautor: Gość » 11 listopada 2005, 10:16

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.12) Gecko/20050919 Firefox/1.0.7

Pleciesz bzdury :). To co z tego, że w dokumencie masz kod html i deklarację XML? A zmień chociażby rozszerzenie pliku na *.txt i otwórz w przeglądarce, co otrzymasz? Dokument HTML (XML), czy plik tekstowy? No i co? Myślisz, że jak napisałeś deklarację XML w tymże pliku tekstowym, to plik *txt będzie otworzony jako *.xml? Coś Ci się pokręciło! Przeglądarki odczytują najpierw MIME dokumentów a dopiero potem to co w nich napisano. Już pisałem wcześniej, zrób eksperyment -> Jeśli masz kod XHTML z deklaracją XML i odpowiednim DOCTYPE, to zrób sobie kilka kopii tego samego dokumentu i ustaw różne rozszerzenia i sprawdzaj jak parsują te dokumenty przeglądarki:

1 - *.html
2 - *.xhtml
3 - *.xml
4 - *.txt

Jak zauważysz, przeglądarki mają gdzieś deklarację XML i DOCTYPE jeśli im nie podasz odpowiedniego typu mime. Najpierw MIME, potem ew. deklaracja XML, potem DOCTYPE i reszta.

// EOT
Gość
 

Postautor: ziem » 11 listopada 2005, 10:58

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

Anonymous pisze:Pleciesz bzdury :). To co z tego, że w dokumencie masz kod html i deklarację XML? A zmień chociażby rozszerzenie pliku na *.txt i otwórz w przeglądarce, co otrzymasz? Dokument HTML (XML), czy plik tekstowy? No i co? Myślisz, że jak napisałeś deklarację XML w tymże pliku tekstowym, to plik *txt będzie otworzony jako *.xml? Coś Ci się pokręciło! Przeglądarki odczytują najpierw MIME dokumentów a dopiero potem to co w nich napisano. Już pisałem wcześniej, zrób eksperyment -> Jeśli masz kod XHTML z deklaracją XML i odpowiednim DOCTYPE, to zrób sobie kilka kopii tego samego dokumentu i ustaw różne rozszerzenia i sprawdzaj jak parsują te dokumenty przeglądarki:

1 - *.html
2 - *.xhtml
3 - *.xml
4 - *.txt

Jak zauważysz, przeglądarki mają gdzieś deklarację XML i DOCTYPE jeśli im nie podasz odpowiedniego typu mime. Najpierw MIME, potem ew. deklaracja XML, potem DOCTYPE i reszta.

// EOT

ok, to ja Ci powiem tak, bo widzę, że nie rozumiesz, co napisałem: napisałem, że meta z mime wewnątrz pliku xml na dysku się nie liczy - łatwo to sprawdzić zapisując dokument w innej stronie kodowej niż zdefiniowana w mime (ale poprawnie w deklaracji xml) i podając typ mime jako np text.
jeśli zapiszemy dokument jako xml, to linia z mime zostanie zignorowana - i o to mi chodziło (działa tak nawet pod IE, nie mówiąc o Firefoxie.
Jeśli plik jest przesyłany przez HTTP - to co innego, mime ma pierwszeństwo (oczywiście mime z nagłówka HTTP, a nie to z meta). Kiedyś robiłem tego typu testy więc wiem dobrze o czym piszę.
Nie pisałem nic o rozszerzeniu pliku, aletrudno oczekiwać, że jak się dopisze w rozszerzeniu pliku zawierającego kod XML .zip, to się otworzy jako xml. To już całkiem inna sprawa, ale nie związana z mime, tylko skojarzeniami typu pliku z rozszerzeniem w przeglądarce. Oczywiście zapisanie pliku jako .html spowoduje, że będzie przetwarzany jako html (wtedy strona kodowa z meta ma pierwszeństwo)
Ostatnio zmieniony 11 listopada 2005, 12:26 przez ziem, łącznie zmieniany 2 razy
ziem
 
Posty: 57
Z nami od: 11 października 2003, 17:42
Lokalizacja: Skądinąd

Postautor: Gość » 11 listopada 2005, 11:48

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.12) Gecko/20050919 Firefox/1.0.7

Wszędzie MIME ma pierwszeństwo :) i nie decyduje się o typie wewnątrz dokumentu jak ty to myślisz (zmieniając *.zip na *.xml, ZIP ma teraz mime "[text | application]/xml"). Stąd ignorowanie tagów META w dokumentach XHTML, bo META nie są do niczego potrzebne. Mylisz MIME z <meta http-equiv="Content-Type" .. />. HTTP-EQUIV został tylko ze względów wstecznej zgodności na wypadek, gdyby któraś z przeglądarek nie "czytała" nagłówków podawanych z serwera. Właśnie zrozumiałeś, że jeśli dasz odpowiednie rozszerzenie dla pliku, podajesz właśnie MIME i wtedy HTTP-EQUIV jest ignorowane. Rozumiesz już teraz? Nawet jeśli zapiszesz w HTTP-EQUIV "application/xhtml+xml" a rozszerzenie dasz .*html to i tak MIME będzie "text/html", bo rozrzerzenie ma pierwszeństwo w tym przypadku! Dla tego rozszerzenia MIME jest przydzielone odgórnie już w systemie! O mime nie decuduje się w HTTP-EQUIV, bo to ekwiwalent dla danych z serwera w przypadku gdyby ten nie przesłał żadnego MIME w nagłówkach protokołu HTTP!
Gość
 

Postautor: ziem » 11 listopada 2005, 12:19

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

Anonymous pisze:Wszędzie MIME ma pierwszeństwo :) i nie decyduje się o typie wewnątrz dokumentu jak ty to myślisz (zmieniając *.zip na *.xml, ZIP ma teraz mime "[text | application]/xml"). Stąd ignorowanie tagów META w dokumentach XHTML, bo META nie są do niczego potrzebne. Mylisz MIME z <meta http-equiv="Content-Type" .. />. HTTP-EQUIV został tylko ze względów wstecznej zgodności na wypadek, gdyby któraś z przeglądarek nie "czytała" nagłówków podawanych z serwera. Właśnie zrozumiałeś, że jeśli dasz odpowiednie rozszerzenie dla pliku, podajesz właśnie MIME i wtedy HTTP-EQUIV jest ignorowane. Rozumiesz już teraz? Nawet jeśli zapiszesz w HTTP-EQUIV "application/xhtml+xml" a rozszerzenie dasz .*html to i tak MIME będzie "text/html", bo rozrzerzenie ma pierwszeństwo w tym przypadku! Dla tego rozszerzenia MIME jest przydzielone odgórnie już w systemie! O mime nie decuduje się w HTTP-EQUIV, bo to ekwiwalent dla danych z serwera w przypadku gdyby ten nie przesłał żadnego MIME w nagłówkach protokołu HTTP!

Teraz to już mnie rozśmieszyłeś. Oczywiście, że ja wiem, co to jest nagłówek http i z mojego posta można to wywnioskować, o ile się wnioskować umie. Powtarzasz fragmenty mojej wypowiedzi - a potem pytasz czy rozumiem. To żałosne. Co się tyczy MIME - to poczytaj może co to jest, zanim zaczniesz o nim pisać - dobra lektura na początek - Biblia TCP/IP, R.W. Stevens, str 524 i dalsze. Reszta tego co piszesz to co najwyżej półprawdy i musisz jeszcze trochę poczytać, np o "przyznawaniu odgórnie w systemie rozszerzeń MIME". Przy odczycie pliku z dysku to raczej przeglądarka oddolnie mogłaby sobie ustalać mime i system nie ma tu nic do rzeczy - resztą tego akurat dokładnie nie wiem, jak przeglądarka ustala mime na podstawie rozszerzenia (tzn jaki jest tu mechanizm, czy są emulowane nagłówki HTTP etc.
ziem
 
Posty: 57
Z nami od: 11 października 2003, 17:42
Lokalizacja: Skądinąd

Postautor: athantor » 11 listopada 2005, 12:48

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8) Gecko/20051110 Firefox/1.5

Zajec pisze:
athantor pisze:Kłamstwa! To wszystko kłamstwa!

A teraz pozwól, że zacytuję: „;—)))))
A może coś bardziej argumentowego?


<tupnięcie nogą/>

Może być? ;-)
Obrazek Obrazek
athantor
 
Posty: 911
Z nami od: 24 grudnia 2002, 15:22
Lokalizacja: Białystok

Poprzednia

Wróć do Standardy WWW i źle działające strony

Kto jest online

Zarejestrowani użytkownicy: dexter, Google [Bot]

Przejdź do powiązanej strony

Nawigacja:

Stopka: