RFC 2397

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Här är den översatta texten:

```mediawiki

"data" URL-schemat

Status för detta memo

Detta dokument specificerar ett Internetstandardprotokoll för Internetgemenskapen och begär diskussion och förslag till förbättringar. Vänligen se den aktuella utgåvan av "Internet Official Protocol Standards" (STD 1) för standardiseringsstatusen för detta protokoll. Distributionen av detta memo är obegränsad.

Upphovsrättsmeddelande

Copyright (C) Internet Society (1998). Alla rättigheter förbehållna.

1. Sammanfattning

Ett nytt URL-schema, "data", definieras. Det möjliggör inkludering av små datatyper som "omedelbara" data, som om de hade inkluderats externt.

2. Beskrivning

Vissa applikationer som använder URL:er har också behov av att bädda in (små) mediatypedata direkt inline. Detta dokument definierar ett nytt URL-schema som skulle fungera som "omedelbar adressering". URL:erna har formen:

data:[<mediatyp>][;base64],

<mediatyp> är en Internet-medietypespecifikation (med valfria parametrar). Förekomsten av ";base64" betyder att datan är kodad som base64. Utan ";base64" representeras data (som en sekvens av oktetter) med ASCII-kodning för oktetter inom intervallet för säkra URL-tecken och med standard %xx hex-kodning av URL:er för oktetter utanför det intervallet. Om <mediatyp> utelämnas, blir standarden text/plain;charset=US-ASCII. Som en förkortning kan "text/plain" utelämnas men charset-parametern anges.

URL-schemat "data:" är endast användbart för korta värden. Observera att vissa applikationer som använder URL:er kan införa en längdbegränsning; till exempel har URL:er som är inbäddade i <A> -taggar i HTML en längdgräns som bestäms av SGML-deklarationen för HTML [RFC1866]. LITLEN (1024) begränsar antalet tecken som kan förekomma i ett enda attributvärdesliteral, ATTSPLEN (2100) begränsar summan av alla längder av alla attributvärdespecifikationer som förekommer i en tagg, och TAGLEN (2100) begränsar den totala längden på en tagg.

URL-schemat "data" har inga relativa URL-former.

3. Syntax

dataurl    := "data:" [ mediatyp ] [ ";base64" ] "," data
mediatyp  := [ typ "/" undertyp ] *( ";" parameter )
data       := *urlchar
parameter  := attribut "=" värde

Där "urlchar" är importerad från [RFC2396], och "typ", "under typ", "attribut" och "värde" är de motsvarande token från [RFC2045], representerade med URL-kodning enligt [RFC2396] efter behov.

Attributvärden i [RFC2045] får representeras som antingen token eller som citerade strängar. Inom en "data"-URL skulle dock "citerad-sträng"-representationen vara besvärlig, eftersom citattecknet självt inte är ett giltigt urlchar. Av denna anledning bör parametervärden använda URL-kodning istället för citerad sträng om parametervärdena innehåller någon "tspecial".

";base64"-tillägget är skiljbart från en content-type parameter genom att det inte har ett efterföljande "="-tecken.

4. Exempel

En data-URL kan användas för godtyckliga typer av data. URL:en

data:,A%20brief%20note

kodas som text/plain-strängen "A brief note", vilket kan vara användbart i en fotnotslänk.

HTML-fragmentet:

<IMG
SRC="data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw
AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz
ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp
a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl
ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis
F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH
hhx4dbgYKAAA7"
ALT="Larry">

kan användas för en liten inbäddad bild i ett HTML-dokument. (Den inbäddade bilden är förmodligen nära gränsen för användbarhet. För något större är data-URL:er sannolikt olämpliga.)

En data-URL-schemas medietypespecifikation kan inkludera andra parametrar; till exempel kan man specificera en charset-parameter.

data:text/plain;charset=iso-8859-7,%be%fg%be

kan användas för en kort sekvens av grekiska tecken.

Vissa applikationer kan använda URL-schemat "data" för att tillhandahålla inställningsparametrar för andra typer av nätverksapplikationer. Till exempel kan man skapa en medietyp

application/vnd-xxx-query

vars innehåll består av en frågesträng och en databasidentifierare för "xxx"-leverantörens databaser. En URL av formen:

data:application/vnd-xxx-
query,select_vcount,fcol_from_fieldtable/local

kan sedan användas i en lokal applikation för att starta "hjälpen" för application/vnd-xxx-query och ge den de omedelbara data som ingår.

5. Historik

Denna idé föreslogs ursprungligen i augusti 1995. Vissa versioner av data-URL-schemat har använts i definitionen av VRML, och en version har dykt upp som en del av ett förslag för inbäddad data i HTML. Olika ändringar har gjorts, baserade på förfrågningar, för att utesluta medietypen, packa indikationen av base64-kodning tätare och eliminera "quoted printable" som en kodning eftersom det inte lätt skulle ge giltiga URL:er utan ytterligare %xx-kodning, vilket i sig är tillräckligt. "data" URL-schemat används i VRML, nya applikationer av HTML och olika kommersiella produkter. Det används för objektparametrar i Java och ActiveX-applikationer.

6. Säkerhet

Tolkningen av datan inom en "data" URL har samma säkerhetsöverväganden som alla implementationer av den givna medietypen. En applikation bör inte tolka innehållet i en data-URL som är märkt med en medietyp som har förbjudits för bearbetning enligt applikationens konfiguration.

Webbplatser som använder brandväggsproxyer för att förhindra hämtning av vissa medietyper (såsom applikationsskriptspråk eller typer med kända säkerhetsproblem) kommer att ha svårt att skydda sig mot inkluderingen av sådana typer med hjälp av "data"-URL-schemat. De bör dock vara medvetna om hotet och vidta nödvändiga försiktighetsåtgärder inom deras domän.

Effekten av att använda långa "data"-URL:er i applikationer är för närvarande okänd; vissa mjukvarupaket kan uppvisa orimligt beteende när de konfronteras med data som överstiger deras tilldelade buffertstorlek.

7. Referenser

  • [RFC2396] Berners-Lee, T., Fielding, R., och L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396, Augusti 1998.
  • [RFC1866] Berners-Lee, T., och D. Connolly, "Hypertext Markup Language - 2.0.", RFC 1866, November 1995.
  • [RFC2045] Freed N., och N. Borenstein., "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.

Författarens kontaktinformation

Larry Masinter
Xerox Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, CA 94304
E-post: masinter@parc.xerox.com


Fullständig upphovsrättsdeklaration

Copyright (C) Internet Society (1998). Alla rättigheter förbehållna.

Detta dokument och dess översättningar får kopieras och tillhandahållas till andra, och avledda verk som kommenterar eller på annat sätt förklarar det eller hjälper till med dess implementering får förberedas, kopieras, publiceras och distribueras, helt eller delvis, utan någon begränsning av något slag, förutsatt att ovanstående upphovsrättsmeddelande och denna paragraf ingår i alla sådana kopior och avledda verk. Detta dokument får dock inte ändras på något sätt, såsom genom att ta bort upphovsrättsmeddelandet eller referenser till Internet Society eller andra Internet-organisationer, förutom när det behövs för att utveckla Internet-standarder, i vilket fall procedurerna för upphovsrätt definierade i Internet-standardprocessen måste följas, eller när det krävs för att översätta det till andra språk än engelska.

De begränsade rättigheterna som beviljas ovan är eviga och kommer inte att återkallas av Internet Society eller dess efterträdare eller tilldelade.

Detta dokument och informationen häri tillhandahålls på en "AS IS"-basis och INTERNET SOCIETY OCH INTERNET ENGINEERING TASK FORCE AVSÄGER SIG ALLA GARANTIER, UTTRYCKLIGA ELLER UNDERFÖRSTÅDDA, INKLUSIVE MEN INTE BEGRÄNSAT TILL ALLA GARANTIER OM ATT ANVÄNDNINGEN AV INFORMATIONEN HÄRINTE INTE KOMMER ATT KRÄNKA NÅGRA RÄTTIGHETER ELLER NÅGRA UNDERFÖRSTÅDDA GARANTIER FÖR SÄLJBARHET ELLER LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL. ```

Sidslut

Orginalhemsidan på Engelska : https://www.rfc-editor.org/rfc/rfc2397


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.