data類型的Url的格式

data類型的Url的格式

一、data類型的簡介

所謂"data"類型的Url格式,是在RFC2397中提出的,目的對于一些“小”的數據,可以在網頁中直接嵌入,而不是從外部文件載入。例如對于img這個Tag,哪怕

這個圖片非常非常的小,小到只有一個點,也是要從另外一個外部的圖片文件例如gif文件中讀入的,如果瀏覽器實現了data類型的Url格式,這個文件就可以

直接從頁面文件內部讀入了。

?

二、入門實例

下面這個html代碼可以在支持data類型Url的瀏覽器中運行,運行后會看到一條藍色漸變底色的標題。

?

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<style type="text/css">
.title {background-image:url(data:image/gif;base64,R0lGODlhAQAcALMAAMXh96HR97XZ98Hf98Xg97DX97nb98Lf97vc98Tg973d96rU97ba97%2Fe96XS9wAAACH5BAAAAAAALAAAAAABABwAAAQVMLhVBDNItXESAURyDI2CGIxQLE4EADs%3D);background-repeat:repeat-x;height:28px;line-height: 28px;text-align:center;
}
</style>
</head>
<body>
<div class="title">Hello, world!</div>
</body>
</html>

直接嵌入到html或css文件還是很合適的。

?

data格式的Url最直接的好處是,這些Url原本會引起一個新的網絡訪問,因為那里是一個網頁的地址,現在不會有新的網絡訪問了,因為現在這里是網頁的內

容。這樣做,會減少服務器的負載,當然同時也增加了當前網頁的大小。所以對“小”數據特別有好處。

?

三、data類型Url的形式

既然是Url,當然也可以直接在瀏覽器的地址欄中輸入。

data:text/html,<html><body><p><b>Hello, world!</b></p></body></html>

在瀏覽器中輸入以上的Url,會得到一個加粗的"Hello, world!"。也就是說,data:后面的數據直接用做網頁的內容,而不是網頁的地址。

data:text/plain;charset=UTF-8;base64,5L2g5aW977yM5Lit5paH77yB

這個例子會顯示出"你好,中文!"。如果吧charset部分去掉,就會顯示亂碼,因為我用的是UTF-8編碼。

?

簡單的說,data類型的Url大致有下面幾種形式。

?

data:,<文本數據>data:text/plain,<文本數據>data:text/html,<html代碼>data:text/html;base64,<base64編碼的html代碼>data:text/css,<css代碼>data:text/css;base64,<base64編碼的css代碼>data:text/javascript,<javascript代碼>data:text/javascript;base64,<base64編碼的javascript代碼>data:image/gif;base64,base64編碼的gif圖片數據data:image/png;base64,base64編碼的png圖片數據data:image/jpeg;base64,base64編碼的jpeg圖片數據data:image/x-icon;base64,base64編碼的icon圖片數據
四、data類型Url的形式舉例

?

因為Url是一種基于文本的協議,所以gif/png/jpeg這種二進制屬于需要用base64進行編碼。換句話說,引入base64以后,就可以支持任意形式的數據格式。下

面是個png圖片的例子,會在瀏覽器中顯示一個Mozilla的圖標:

?

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==

?

data格式Url的種種應用舉例

可以在Html的Img對象中使用,例如

<img src="data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAF..." />

可以在Css的background-image屬性中使用,例如

div.image {
width:100px;
height:100px;
background-image:url(data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAF...);
}

可以在Html的Css鏈接處使用,例如

<link rel="stylesheet" type="text/css" href="data:text/css;base64,LyogKioqKiogVGVtcGxhdGUgKioq..." />

可以在Html的Javascript鏈接處使用,例如

<link rel="stylesheet" type="text/css" href="data:text/css;base64,LyogKioqKiogVGVtcGxhdGUgKioq..." />

完整的語法定義

在RFC中,完整的語法定義如下。

 

?

urlchar指的就是一般url中允許的字符,有些字符需要轉義,例如"="要轉義為"%3D",不過我測試下來,至少在Firefox里面,不轉義也是可以的。

parameter可以對mediatype進行屬性的擴展,常見的是charset,用來定義編碼格式,在多語言情況下需要用到。例如下面的例子。

?

五、base64數據轉換工具

把二進制數據轉換成為Base64不是什么難事,比如Total Commander就有這樣的功能。還有一些在線資源,

http://www.greywyvern.com/code/php/binary2base64

http://www.kawa.net/works/js/data-scheme/base64-e.html

有些在線轉換把base64里面的“=”轉換成為%3D,這個在Url中和“=”是一樣的,不轉換也沒什么問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285771.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285771.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285771.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言試題八十之統計單詞個數

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 終端輸入一…

SSIS 執行變量中的腳步輸出列順序與SQL查詢列順序不同

這個問題是朋友遇到的&#xff0c;做一個SSIS的程序將數據導入到txt。然后再用Oracle的工具導入到Oracle。但是在SSIS中執行變量腳步的時候&#xff0c;發現輸出的列名稱跟查詢的列名稱完全不同。比如Schema_id在查詢的第三列&#xff0c;但是輸出的時候到了第6列。 如圖&#…

【ArcGIS風暴】ArcGIS自定義坐標系統案例教程---以阿爾伯斯投影(Albers)為例

在實際工作中,經常需要進行矢量數據或柵格數據的投影轉換工作,但有時候ArcGIS中恰恰沒有我們需要的坐標系,此時,就需要我們自定義坐標系。本文以阿爾伯斯投影(Albers)為例,講解自定義投影的一般過程及注意事項。 文章目錄 1. 確定投影名稱2. 選擇投影坐標系及修改參數4.…

C語言試題八十一之利用遞歸函數調用方式,將所輸入的5個字符,相反順序打印

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 利用遞歸函…

Unity5 GI與PBS渲染從用法到著色代碼

本文主要介紹Untiy5以后的GI&#xff0c;PBS&#xff0c;以及光源探頭&#xff0c;反射探頭的用法以及在著色器代碼中如何發揮作用&#xff0c;GI是如何影響渲染的&#xff0c;主要分成三個部分&#xff0c;最開始說明PBS需要的材質與相應概念&#xff0c;二是Unity 里相應GI的…

Web前端筆試面試題匯總(轉自github)

前言 本文總結了一些優質的前端面試題&#xff08;多數源于網絡&#xff09;&#xff0c;初學者閱后也要用心鉆研其中的原理&#xff0c;重要知識需要系統學習&#xff0c;透徹學習&#xff0c;形成自己的知識鏈。萬不可投機取巧&#xff0c;只求面試過關是錯誤的&#xff01; …

Blazor University (31)表單 —— 驗證

原文鏈接&#xff1a;https://blazor-university.com/forms/validation/驗證源代碼[1]DataAnnotationsValidator 是 Blazor 中的標準驗證器類型。在 EditForm 組件中添加此組件將啟用基于 System.ComponentModel.DataAnnotations.ValidationAttribute 的 .NET 屬性的表單驗證。…

CSDN,CNBLOGS博客文章一鍵轉載插件 終于更新了!

之前&#xff0c;Shawn Chou等朋友一直建議插件支持cnblogs文章轉載&#xff0c;但一直沒時間修改插件&#xff0c;今天晚上抽時間將插件進行了升級&#xff0c;可以支持 CSDN,CNBLOGS博客文章的一鍵轉載。時間倉促&#xff0c;難免有各種問題&#xff0c;歡迎提出建議&#xf…

ROS2_Control官方資料+運動控制

Getting Started — ROS2_Control: Rolling Dec 2023 documentation Getting Started Edit on GitHub Youre reading the documentation for a development version. For the latest released version, please have a look at Iron. Getting Started? Installation? Binar…

三、教你搞懂漸變堆疊面積圖《手把手教你 ECharts 數據可視化詳解》

注&#xff1a;本系列教程需要對應 JavaScript 、html、css 基礎&#xff0c;否則將會導致閱讀時困難&#xff0c;本教程將會從 ECharts 的官方示例出發&#xff0c;詳解每一個示例實現&#xff0c;從中學習 ECharts 。 ECharts 官方示例&#xff1a;https://echarts.apache.o…

C語言試題八十二之輸入小寫字母,把小寫字母轉換成大寫字母。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 輸入小寫字…

Serv-U服務器的管理3

&#xff18;&#xff0e;編輯&#xff29;&#xff30;訪問規則對于某些擾亂服務器秩序但又不方便刪除其賬戶的用戶&#xff0c;可以利用“編輯&#xff29;&#xff30;訪問規則”允許或阻止特定的&#xff29;&#xff30;訪問。&#xff33;&#xff45;&#xff52;&#…

【ArcGIS風暴】什么是點云?什么是Las數據集?一篇文章告訴你點云數據的奧秘

攝影測量Pix4d等軟件,或激光雷達數據一般都是LAS格式的點云數據,有很大的適用范圍和優點,那么,到底什么是LAS數據集呢,一文告訴你LAS數據集的來龍去脈。 擴展閱讀: 什么是點云?什么是Las數據集?一篇文章告訴你點云數據的奧秘 ArcGIS+CASS點云(.las)數據生成等高線方法案…

試用了多款報表工具,終于找到了基于.Net 6開發的一個了

Part1前言上一個月有一個項目需要用到數據分析&#xff0c;將老板感興趣的數據給他整理成一個面板&#xff0c;方便他實時查看&#xff0c;于是自己了解到了BI,當時我們項目就用了metabase&#xff0c;metabase是一款開源的BI分析工具&#xff0c;開發語言clojureReact為主。就…

4種CSS文字豎排方法

2019獨角獸企業重金招聘Python工程師標準>>> 有時候&#xff0c;我們需要對網頁某個區域的文字豎排&#xff0c;豎向排列&#xff0c;橫向的當然大家都見慣了&#xff0c;對于豎排&#xff0c;一時間找不到思路了&#xff0c;呵呵&#xff0c;其實和橫排一樣簡單&am…

知道這20個正則表達式,能讓你少寫1,000行代碼

正則表達式&#xff0c;一個十分古老而又強大的文本處理工具&#xff0c;僅僅用一段非常簡短的表達式語句&#xff0c;便能夠快速實現一個非常復雜的業務邏輯。熟練地掌握正則表達式的話&#xff0c;能夠使你的開發效率得到極大的提升。 正則表達式經常被用于字段或任意字符串的…

Android之SwipeRefreshLayout嵌套RecyclerView遇到的坑

1 、需求 RecyclerView多布局里面加入SwipeRefreshLayout實現下拉刷新 2、關鍵代碼 <androidx.swiperefreshlayout.widget.SwipeRefreshLayoutandroid:id="@+id/mainRefresh"android:layout_width="match_parent"android:layout_height="0dp"…

TCP連接出現大量TIME_WAIT的解決辦法

一個TCP/IP連接斷開以后&#xff0c;會通過TIME_WAIT的狀態保留一段時間&#xff0c;時間過了才會釋放這個端口&#xff0c;當端口接受的頻繁請求數量過多的時候&#xff0c;就會產生大量的TIME_WAIT狀態的連接&#xff0c;這些連接占著端口&#xff0c;會消耗大量的資源。面對…

【ArcGIS風暴】ArcGIS10.6創建LAS數據集的兩種方法并加載點云數據

文章目錄 1. 使用上下文菜單創建 LAS 數據集2. 使用地理處理工具創建 LAS 數據集3. 顯示LAS數據集LAS 數據集是位于文件夾中的獨立文件,并且引用 LAS 格式的激光雷達數據和用于定義表面特征的可選表面約束要素。可使用創建 LAS 數據集工具或 ArcCatalog 中文件夾的上下文菜單快…

關于建立北京市專業技術人員職業資格與職稱對應關系的通知

原文地址 http://www.bjrbj.gov.cn/xxgk/gsgg/201906/t20190605_82857.html 附件 北京市專業技術人員職業資格與職稱對應表 &#xff08;46項&#xff09; 一、準入類職業資格 序號 資格名稱 可聘專業技術職務 1 注冊消防工程師 一級注冊消防工程師&#xff1a;工程師 二…