URL danych



Internet jest niewyczerpanym źródłem wiedzy, także jeśli chodzi o URL danych. Wieki i stulecia ludzkiej wiedzy o URL danych zostały przelane, i nadal są przelewane, do sieci, i właśnie dlatego dostęp do niej jest tak trudny, ponieważ możemy znaleźć miejsca, w których nawigacja może być trudna lub wręcz niewykonalna. Proponujemy, abyś nie rozbił się w morzu danych dotyczących URL danych i abyś mógł szybko i sprawnie dotrzeć do wszystkich portów mądrości.

Mając na uwadze ten cel, zrobiliśmy coś, co wykracza poza to, co oczywiste - zebraliśmy najbardziej aktualne i najlepiej wyjaśnione informacje na temat URL danych. Ułożyliśmy je również w sposób ułatwiający czytanie, z minimalistycznym i przyjemnym wyglądem, zapewniając najlepsze wrażenia użytkownika i najkrótszy czas ładowania. Ułatwiamy Ci to, abyś musiał się martwić tylko o to, by dowiedzieć się wszystkiego o URL danych! Jeśli więc uważasz, że osiągnęliśmy nasz cel i wiesz już wszystko, co chciałeś wiedzieć o URL danych, z przyjemnością przyjmiemy Cię z powrotem na te spokojne morza sapientiapl.com, gdy tylko Twój głód wiedzy zostanie ponownie rozbudzony.

URL danych jest schemat URI , który umoliwia dane by osadzone w ( HTML ) tekstu ródowego , jakby to byy rodki zewntrzne. Oznacza to, e dane, na przykad dla grafiki, mog by umieszczone w dokumencie HTML bezporednio w tekcie ródowym HTML, zamiast by pobierane z pliku, jak ma to miejsce w innym przypadku.

To wydaje si by atwiejsze ni inne metody osadzania, takie jak MIME z cid- lub mid- URI (zobacz RFC 2111 ). Adresy URL danych s czsto okrelane jako Uniform Resource Locators, mimo e nie odwouj si do adnej zawartoci zewntrznej. W rzeczywistoci s to jednolite identyfikatory zasobów . URL danych jest zdefiniowany w dokumencie RFC 2397 w tym Internet Engineering Task Force (IETF).

Chocia IETF opublikowaa Specyfikacj Data URL w 1998 roku, nigdy nie zostaa ona formalnie uznana za standard. Jednak specyfikacja HTML 4.01 (grudzie 1999) odwouje si do definicji adresu URL danych, a wikszo obecnych przegldarek internetowych obsuguje adresy URL danych.

Obsuga przegldarki internetowej

Nastpujce przegldarki internetowe obsuguj obecnie adresy URL danych:

format

data:[<MIME-Typ>][;charset=<Zeichensatz>][;base64],<Daten>

Kod jest oznaczony symbolem ;base64. Jeli jest dostpny, oznacza to, e nastpujce dane s zakodowane w Base64 . W przeciwnym razie, jeli brakuje base64parametru , dane s kodowane przy uyciu kodowania URL . Jeli typ MIME nie jest okrelony, przyjmowany jest typ MIME . Jeli zestaw znaków jest inny, typ MIME mona pomin jako skrót dla Plain text , ale mona uy parametru zestawu znaków. text/plain;charset=US-ASCII

Zalety

  • Dane osadzone nie wymagaj dania HTTP i pozwalaj zaoszczdzi ruch i przepustowo, jeli obcienie kodowania jest mniejsze ni obcienie HTTP. Na przykad 600- bajtowy obraz ma rozmiar 800 bajtów zakodowany w Base64 (jeli jest przesyany w postaci nieskompresowanej, HTML i CSS s zwykle przesyane w postaci skompresowanej). Jeli obcienie HTTP jest teraz wiksze ni 200 bajtów, adres URL danych jest bardziej wydajny.
  • W przypadku transportu wielu maych plików adres URL danych moe by szybszy w transporcie. Rozpoczcie pocze TCP jest zwykle powolne. Jeli kady plik wymaga nowego poczenia TCP, prdko transportu jest bardziej ograniczona przez rodowisko wykonawcze ni przez dostpn przepustowo. Uycie HTTP keepalive poprawia sytuacj, ale nie usuwa cakowicie wskiego garda.
  • W przypadku dostpu do witryny za porednictwem protokou HTTPS wikszo przegldarek internetowych oczekuje, e wszystkie elementy tej witryny s równie ponownie adowane za porednictwem bezpiecznego poczenia, w przeciwnym razie uytkownik zostanie powiadomiony, e poczenie bezpiecznych i niezabezpieczonych elementów zmniejsza bezpieczestwo. HTTPS ma znacznie wiksze obcienie ni zwyky HTTP, wic osadzanie elementów witryny w adresach URL danych zwiksza w tym przypadku szybko i zapobiega wywietlaniu ostrzee bezpieczestwa.
  • Przegldarki internetowe s zwykle skonfigurowane w taki sposób, e tylko okrelona maksymalna liczba pocze HTTP jest nawizywana z tym samym serwerem sieciowym, wic osadzone dane zapisuj poczenia HTTP na korzy innych treci.
  • rodowiska z ograniczonym lub zablokowanym dostpem do zasobów zewntrznych mog osadza zawarto, jeli odwoywanie si do niej zewntrznie jest niedozwolone lub niepraktyczne. Na przykad, zaawansowane pole edytora HTML moe zaakceptowa wstawiony obraz i przekonwertowa go na adres URL danych, aby ukry przed uytkownikiem zoono zewntrznych odniesie.
  • Stron multimedialn mona zarzdza jako pojedynczym plikiem.
  • Chocia rzadko si to zdarza, zdarzaj si sytuacje, w których integralno plików zostaje naruszona podczas ich przesyania . Moe si to zdarzy tylko w przypadku adresów URL danych, jeli naruszona zostanie integralno caej strony.

niekorzy

  • Adresy URL danych nie mog by buforowane oddzielnie od dokumentów, które zawieraj (np. plików HTML lub CSS ) , wic dane zostan pobrane ponownie, jeli (w zalenoci od miejsca osadzenia) dokument zostanie ponownie zaadowany lub plik CSS zostanie przeniesiony do innej pozycji ulega zmianie .
  • Po wprowadzeniu zmiany adres URL danych musi zosta ponownie zakodowany i osadzony.
  • Dane s zintegrowane jako prosty strumie danych , a wiele rodowisk wykonawczych , takich jak przegldarki internetowe , nie obsuguje formatów kontenerów ( takich jak multipart/alternativelub message/rfc822) w celu przechowywania danych o wikszej zoonoci , takich jak metadane , dane skompresowane lub negocjowanie treci .
  • Dane zakodowane w Base64 s o jedn trzeci wiksze ni ich odpowiednik binarny . Wada ta jest umieszczany w odpowiedniej perspektywie, jeli serwer uywa Content-Encoding- HTTP nagówek aby skompresowa odpowied .
  • Adresy URL danych utrudniaj oprogramowaniu zabezpieczajcemu filtrowanie treci.
  • Przegldarki internetowe na urzdzeniach mobilnych (np. smartfonach ) zazwyczaj posiadaj funkcj, za pomoc której mona dezaktywowa adowanie obrazów w celu zaoszczdzenia iloci danych. Osadzenie go bezporednio w dokumencie uniemoliwia korzystanie z takiej funkcji.

Przykady

HTML

Maa czerwona kropka.png
Czerwony punkt z przykadu po lewej

Fragment HTML zawierajcy obraz maej czerwonej kropki:

<img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Roter Punkt" />

Jak pokazano powyej, adres URL danych moe zawiera odstpy w celu zapewnienia czytelnoci . Przychylny czytelnik moe wyci tekst znajdujcy si midzy cytatami i wpisa go w wierszu adresu przegldarki obsugujcej.

CSS

CSS regua, która zawiera obraz ta:

ul.checklist  li.complete { margin-left: 20px; background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC') top left no-repeat;}

JavaScript

Przykad JavaScript, który otwiera nowe, osadzone okno , na przykad dla przypisu :

window.open('data:text/html;charset=utf-8,%3C%21DOCTYPE%20html%3E%0D%0A%3Cht'+
  'ml%20lang%3D%22en%22%3E%0D%0A%3Chead%3E%3Ctitle%3EEmbedded%20Window%3C%2F'+
  'title%3E%3C%2Fhead%3E%0D%0A%3Cbody%3E%3Ch1%3E42%3C%2Fh1%3E%3C%2Fbody%3E%0'+
  'A%3C%2Fhtml%3E%0A%0D%0A','_blank','height=300,width=400');

Ten przykad nie dziaa w programie Internet Explorer 8 . Jego ustawienia bezpieczestwa uniemoliwiaj nawigacj typów plików w adresach URL danych.

Wklej HTML lub CSS za pomoc PHP

Poniewa adresy URL danych zakodowanych w Base64 nie s czytelne dla czowieka , twórca witryny powinien wstawi zakodowane dane za pomoc jzyka skryptowego, takiego jak PHP . Ma to t zalet, e w przypadku zmiany zintegrowanego pliku tekst ródowy HTML nie musi by zmieniany, a dane binarne s oddzielane od tekstu . Wad jest wiksze obcienie serwera - CPU , gdy nie jest uywana pami podrczna po stronie serwera .

<php
function data_uri($file, $mime)
{
  $contents = file_get_contents($file);
  $base64   = base64_encode($contents);
  return ('data:' . $mime . ';base64,' . $base64);
}
>

<img src="<php echo data_uri('elephant.png','image/png'); >" alt="Ein Elefant" />

Powysza funkcja moe by równie uywana na danych CSS :

<php header('Content-type: text/css');>

div.menu
{
  background-image:url('<php echo data_uri('menu_background.png','image/png'); >');
}

Funkcje po stronie klienta lub serwera, takie jak komentarze warunkowe lub zapytania agenta uytkownika, mog suy do oferowania alternatywnych adresów URL dla starszych przegldarek, takich jak Internet Explorer do wersji 7.

Narzdzia do konwersji

  • alles2DataURL to bezpatne narzdzie online do konwersji dowolnego formatu pliku (do maksymalnego rozmiaru ok. 3 MB) na adres URL danych.
  • DataURL2Text to bezpatne narzdzie online do konwersji dowolnego adresu URL danych z powrotem na oryginalne dane.
  • Clipboard Observer to darmowe narzdzie Java do atwej konwersji plików PNG na adres URL danych.

Zobacz te

linki internetowe

Indywidualne dowody

  1. a b RFC 2397 Schemat adresów URL danych
  2. Proponowane standardy . W: Oficjalne standardy protokoów internetowych . Spoeczestwo internetowe . 4 stycznia 2009 . ródo 4 stycznia 2009 .
  3. Dave Raggett, Arnaud Le Hors, Ian Jacobs: Obiekty, obrazy i aplety: Zasady renderowania obiektów . W: Specyfikacja HTML 4.01 . W3C . 24 grudnia 1999 . ródo 20 marca 2008 .
  4. a b protokó danych . MSDN . ródo 5 stycznia 2009.
  5. ^ Lista drobnych zmian IE9 Beta . Prawo Erica. ródo 28 padziernika 2010.
  6. RFC 2616 sekcja 8
  7. all2DataURL
  8. DataURL2Text
  9. Obserwator schowka

Opiniones de nuestros usuarios

Mateusz Czajka

Minęło trochę czasu odkąd widziałem artykuł o zmiennej napisany w tak dydaktyczny sposób. Podoba mi się.

Emil Osiński

Dzięki. Pomógł mi artykuł o URL danych.

Janusz Krajewski

Ten wpis na URL danych sprawił, że wygrałem zakład, co mniej niż uzyskanie dobrego wyniku.

Slawomir Dobrowolski

W tym poście o URL danych dowiedziałem się rzeczy, których nie znałem, więc mogę już iść spać.