1、<!DOCTYPE html>是什么,有什么作用?
<!DOCTYPE html>聲明了頁面使用HTML5標準。作用是讓瀏覽器使用W3C標準解析網頁,如果不加這句,會導致瀏覽器使用自己的解析方式。
2、HTML有哪些空元素
空元素就是自閉合標簽,一般的html標簽都是<div></div>這樣的,自閉合標簽就是類似于<br />這樣的。有<area />標簽,<br />換行標簽,<hr />橫線標簽,<base>標簽,base需要放在head里面,href規(guī)定了標簽為頁面上的所有鏈接規(guī)定默認地址或默認目標,,target規(guī)定了打開新網頁的默認打開方式。<img>,<input>,<link>,<meta>。
<link rel="stylesheet" type="text/css" href="theme.css" />
3、meta標簽是什么,有什么用?
meta標簽提供各種元數據,從而提供各種文檔信息。元信息就是非顯示型數據,機器可讀型數據。
meta標簽主要用四個屬性:charset用來聲明頁面的字符編碼,這個要寫在第一行,否則會出現亂碼。第二個是http-equiv,下面的代碼是每30秒刷新一次文檔。
<head>
<meta http-equiv="refresh" content="30">
</head>
name屬性:常用與解決瀏覽器兼容問題,要與content屬性結合使用
content屬性: 通常與有http-equiv或name屬性結合使用,為這兩種屬性加以說明
4、行內元素、塊級元素分別有哪些,有什么區(qū)別?
行內元素:span,a,label,input,img,strong,em
塊級元素:div,p,h1,form,ul,li
區(qū)別:
? 行內元素與塊級元素直觀上的區(qū)別:行內元素會在一條直線上排列,都是同一行的,水平方向排列;塊級元素各占據一行,垂直方向排列。塊級元素從新行開始結束接著一個斷行。
? 塊級元素可以包含行內元素和塊級元素。行內元素不能包含塊級元素。
? 行內元素與塊級元素屬性的不同,主要是盒模型屬性上
行內元素設置width無效,height無效(可以設置line-height),margin上下無效,padding上下無效
行內元素特點:
1、不換行
2、高,行高,外邊距和內邊距不可改變。寬度和高度隨著文本內容的變化而變化,但是可以設置行高。
3、寬度是文字或者圖片的寬度,不可改變。(除非設置inline-block,否則改不了)
4、margin的上下無效左右有效,padding的上下無效左右有效。
塊級元素特點:
1、塊級元素總是會另起一行
2、塊級元素會自動占據可用的全部寬度
5、用HTML5寫一下文檔結構
<!DOCTYPE HTML>
<html lang="zh"> //代表是中文網站,如果是en表示是英文網站,這個主要是給搜索引擎看的,與頁面關系不大
<head>
<meta charset="utf-8"> //頁面使用的是utf-8字符集
</head>
6、@import和link引入樣式的區(qū)別
1、link是HTML提供的標簽,可以加載CSS文件,還可以定義RSS、rel連接屬性等等。@import是css提供的語法規(guī)則,只能導入樣式表。
2、加載順序的區(qū)別:link標簽引入的CSS被同時加載,@import引入的CSS將在頁面加載完畢后被加載。
3、兼容性:@import有一定的兼容問題,但是是個低版本IE,所以個人認為可以忽略
4、DOM可控性。
可以通過 JS 操作 DOM ,插入link標簽來改變樣式;由于DOM方法是基于文檔的,無法使用@import的方式插入樣式。(但是我自己實驗的是可以通過js動態(tài)導入)
7、無樣式內容閃爍(Flash of Unstyle Content)
@import導入CSS樣式的時候會等待文檔全部加載完成后再加載,這段時間頁面只有文檔內容沒有樣式,所以如果網速太慢的話會有一個從無樣式到有樣式的閃爍。解決方法就是使用link標簽加載CSS,這樣頁面就會等CSS下載完成之后再下載HTML文件。
8、HTML5有哪些新特性,移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區(qū)分HTML和HTML5
HTML新特性:
- 圖像Canvas
- 多媒體video、audio
- 本地存儲localStorage、sessionStorage
- 語義化更好的內容元素article、header、footer、nav、section
- 表單控件date、time、canlendar、url、search
- 新的技術webworker、websocket、Geolocation
移除的元素:
- 純表現的元素u、big、center、strike、tt、font、basefont
- 框架集frame、frameset、noframes
8.1、Canvas
HTML5新增的,可以使用js繪制圖像。canvas標簽只是圖形容器,必須使用腳本來繪制圖形。
8.2、SVG(SVG并非是HTML5新特性,但是可以和Canvas做對比)
了解:SVG是矢量圖形,所以不會跟著圖片放縮大小而引起圖片銳利程度、清晰程度的改變。由于是畫的,所以相比于PNG,GIF圖片大小會小很多。
8.3Canvas和SVG的區(qū)別
SVG是基于XML的,所以SVG DOM中的每個越蘇都是可用的,可以為某個元素附加js事件處理器。所以可以控制單個圖形的隱藏顯示等。
Canvas是通過js繪制的,像素渲染。一旦被繪制完成,瀏覽器就不再關注,如果位置發(fā)生變化,那么整個場景都需要重新繪制。
Canvas依賴分辨率,SVG不依賴。
Canvas不支持事件處理器,SVG支持。
Canvas適合做圖像密集型游戲,其中許多對象會被頻繁重繪。
SVG適合做帶有大型渲染區(qū)域的應用程序比如谷歌地圖。
SVG如果復雜度高會減慢渲染速度(因為過度使用dom的應用都慢)
SVG不適合做游戲應用。
8.4多媒體video,audio
video
<video controls>
<source src="myVideo.mp4" type="video/mp4">
<source src="myVideo.webm" type="video/webm">
<p>Your browser doesn't support HTML5 video. Here is
a <a href="myVideo.mp4">link to the video</a> instead.</p>
</video>
video里面的內容是瀏覽器不支持video標簽時候顯示的內容。
如果不加controls頁面上不會顯示videos標簽自帶的控制按鈕,可以用js控制。
如果給video同時加width和height,會使得video窗口大小變成設置的形狀,但是不會讓視頻的長寬比變形。如果只給設置一個,video窗口的大小會自適應。(所以設置一個就可以了)
autoplay布爾屬性。設置自動播放
…………………………細節(jié)部分暫時不談。
本地存儲localStorage、sessionStorage
順便說下cookie
9、dataset數據集
數據集屬性是HTML5新增的特性。
有時候給html標簽添加一些自定義的屬性是非常有用的,但是在HTML5之前沒有標準方法,雖然可以自定義屬性但是終究不是標準方法。
HTML5推出了dataset數據集方法。
<html>
<body>
<div id="dataset" data-name="wo">我是dataset</div>
<script>
const dataset = document.getElementById("dataset").dataset;
console..log(dataset.name); //wo。 這里的.name不需要加data前綴
dataset.name = "ni";
dataset.age = 18;
console,log(dataset.name) //ni 可以通過dataset直接修改屬性。
console,log(dataset.age ) //18 可以通過dataset直接設置屬性。
console.log(typeof dataset); //object 。但是輸出dataset顯示的是 DOMStringMap。
</script>
</body>
</html>
缺點是老式瀏覽器不支持。
9、http狀態(tài)碼
websocket的狀態(tài)碼是多少?
101:請求者已要求服務器切換協議,服務器已確認并準備切換。
狀態(tài)碼分類:
1xx(臨時響應)
表示臨時響應并需要請求者繼續(xù)執(zhí)行操作的狀態(tài)代碼。
代碼 說明
100 (繼續(xù)) 請求者應當繼續(xù)提出請求。 服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。
101 (切換協議) 請求者已要求服務器切換協議,服務器已確認并準備切換。
2xx (成功)
表示成功處理了請求的狀態(tài)代碼。
代碼 說明
200 (成功) 服務器已成功處理了請求。 通常,這表示服務器提供了請求的網頁。
201 (已創(chuàng)建) 請求成功并且服務器創(chuàng)建了新的資源。
202 (已接受) 服務器已接受請求,但尚未處理。
203 (非授權信息) 服務器已成功處理了請求,但返回的信息可能來自另一來源。
204 (無內容) 服務器成功處理了請求,但沒有返回任何內容。
205 (重置內容) 服務器成功處理了請求,但沒有返回任何內容。
206 (部分內容) 服務器成功處理了部分 GET 請求。
3xx (重定向)
表示要完成請求,需要進一步操作。 通常,這些狀態(tài)代碼用來重定向。
代碼 說明
300 (多種選擇) 針對請求,服務器可執(zhí)行多種操作。 服務器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
301 (永久移動) 請求的網頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。
302 (臨時移動) 服務器目前從不同位置的網頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。
304 (未修改) 自從上次請求后,請求的網頁未修改過。 服務器返回此響應時,不會返回網頁內容。
305 (使用代理) 請求者只能使用代理訪問請求的網頁。 如果服務器返回此響應,還表示請求者應使用代理。
307 (臨時重定向) 服務器目前從不同位置的網頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。
4xx(請求錯誤)
這些狀態(tài)代碼表示請求可能出錯,妨礙了服務器的處理。
代碼 說明
400 (錯誤請求) 服務器不理解請求的語法。(解決辦法傳參格式不正確)
401 (未授權) 請求要求身份驗證。 對于需要登錄的網頁,服務器可能返回此響應。
403 (禁止) 服務器拒絕請求。
404 (未找到) 服務器找不到請求的網頁。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內容特性響應請求的網頁。
407 (需要代理授權) 此狀態(tài)代碼與 401(未授權)類似,但指定請求者應當授權使用代理。
408 (請求超時) 服務器等候請求時發(fā)生超時。
409 (沖突) 服務器在完成請求時發(fā)生沖突。 服務器必須在響應中包含有關沖突的信息。
410 (已刪除) 如果請求的資源已永久刪除,服務器就會返回此響應。
411 (需要有效長度) 服務器不接受不含有效內容長度標頭字段的請求。
412 (未滿足前提條件) 服務器未滿足請求者在請求中設置的其中一個前提條件。
413 (請求實體過大) 服務器無法處理請求,因為請求實體過大,超出服務器的處理能力。
414 (請求的 URI 過長) 請求的 URI(通常為網址)過長,服務器無法處理。
415 (不支持的媒體類型) 請求的格式不受請求頁面的支持。
416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍,則服務器會返回此狀態(tài)代碼。
417 (未滿足期望值) 服務器未滿足"期望"請求標頭字段的要求。
5xx(服務器錯誤)
這些狀態(tài)代碼表示服務器在嘗試處理請求時發(fā)生內部錯誤。 這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
代碼 說明
500 (服務器內部錯誤) 服務器遇到錯誤,無法完成請求。(解決辦法傳參數不正確)
501 (尚未實施) 服務器不具備完成請求的功能。 例如,服務器無法識別請求方法時可能會返回此代碼。
502 (錯誤網關) 服務器作為網關或代理,從上游服務器收到無效響應。
503 (服務不可用) 服務器目前無法使用(由于超載或停機維護)。 通常,這只是暫時狀態(tài)。
504 (網關超時) 服務器作為網關或代理,但是沒有及時從上游服務器收到請求。
505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協議版本。
10、頁面導入樣式時,使用Link和@import有什么區(qū)別?
區(qū)別:
1.link是HTML標簽,@import是css提供的。
2.link引入的樣式頁面加載時同時加載,@import引入的樣式需等頁面加載完成后再加載。
3.link沒有兼容性問題,@import不兼容ie5以下。
4.link可以通過js操作DOM動態(tài)引入樣式表改變樣式,而@import不可以。
11、瀏覽器頁面有哪三層構成,分別是什么,作用是什么?
構成:結構層、表示層、行為層
分別是:HTML、CSS、JavaScript
作用:HTML實現頁面結構,CSS完成頁面的表現與風格,JavaScript實現一些客戶端的功能與業(yè)務。
12、HTML5的優(yōu)點與缺點?
優(yōu)點:
- 網絡標準統一、HTML5本身是由W3C推薦出來的。
- 多設備、跨平臺
- 即時更新。
- 提高可用性和改進用戶的友好體驗;
- 有幾個新的標簽,這將有助于開發(fā)人員定義重要的內容;
- 可以給站點帶來更多的多媒體元素(視頻和音頻);
- 可以很好的替代Flash和Silverlight;
- 涉及到網站的抓取和索引的時候,對于SEO很友好;
- 被大量應用于移動應用程序和游戲。
缺點:
- 安全:像之前Firefox4的web socket和透明代理的實現存在嚴重的安全問題,同時web storage、web socket 這樣的功能很容易被黑客利用,來盜取用戶的信息和資料。
- 完善性:許多特性各瀏覽器的支持程度也不一樣。
- 技術門檻:HTML5簡化開發(fā)者工作的同時代表了有許多新的屬性和API需要開發(fā)者學習,像web worker、web socket、web storage 等新特性,后臺甚至瀏覽器原理的知識,機遇的同時也是巨大的挑戰(zhàn)
- 性能:某些平臺上的引擎問題導致HTML5性能低下。
- 瀏覽器兼容性:最大缺點,IE9以下瀏覽器幾乎全軍覆沒。
13、Doctype作用? 嚴格模式與混雜模式如何區(qū)分?它們有何意義?
回答1:
- 聲明位于文檔中的最前面,處于標簽之前。告知瀏覽器的解析器,用什么文檔類型 規(guī)范來解析這個文檔。
- 嚴格模式的排版和JS 運作模式是以該瀏覽器支持的最高標準運行。
- 在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。
- DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。
回答2:
doctype聲明指出閱讀程序應該用什么規(guī)則集來解釋文檔中的標記。在Web文檔的情況下,“閱讀程序”通常是瀏覽器或者校驗器這樣的一個程序,“規(guī)則”則是W3C所發(fā)布的一個文檔類型定義(DTD)中包含的規(guī)則。
- 聲明位于文檔中的最前面的位置,處于標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規(guī)范。該標簽可聲明三種 DTD 類型,分別表示嚴格版本、過渡版本以及基于框架的HTML 文檔。
- 所謂的標準模式是指,瀏覽器按 W3C 標準解析執(zhí)行代碼;怪異模式則是使用瀏覽器自己的方式解析執(zhí)行代碼,因為不同瀏覽器解析執(zhí)行的方式不一樣,所以我們稱之為怪異模式。 嚴格模式是瀏覽器根據web標準去解析頁面,是一種要求嚴格的DTD,不允許使用任何表現層的語法。
- 嚴格模式的排版和JS 運作模式是以該瀏覽器支持的最高標準運行混雜模式則是一種向后兼容的解析方法,說的透明點就是可以實現IE5.5以下版本瀏覽器的渲染模式。
- 瀏覽器解析時到底使用標準模式還是怪異模式,與你網頁中的 DTD 聲明直接相關, DTD 聲明定義了標準文檔的類型(標準模式解析)文檔類型,會使瀏覽器使用相應的方式加載網頁并顯示,忽略 DTD 聲明 ,將使網頁進入怪異模式。
14、HTML5有哪些新特性、移除了哪些元素?
Html5新增了 27 個元素,廢棄了 16 個元素,根據現有的標準規(guī)范,把 HTML5 的元素按優(yōu)先級定義為結構性屬性、級塊性元素、行內語義性元素和交互性元素 4 大類。
結構性元素主要負責web上下文結構的定義
section:在 web 頁面應用中,該元素也可以用于區(qū)域的章節(jié)描述。
header:頁面主體上的頭部, header 元素往往在一對 body 元素中。
footer:頁面的底部(頁腳),通常會標出網站的相關信息。
nav:專門用于菜單導航、鏈接導航的元素,是 navigator 的縮寫。
article:用于表現一篇文章的主體內容,一般為文字集中顯示的區(qū)域。
級塊性元素主要完成web頁面區(qū)域的劃分,確保內容的有效分割。
aside:用于表達注記、貼士、側欄、摘要、插入的引用等作為補充主體的內容。
figure:是對多個元素進行組合并展示的元素,通常與 figcaption 聯合使用。
code:表示一段代碼塊。
dialog:用于表達人與人之間的對話,該元素包含 dt 和 dd 這兩個組合元素, dt 用于表示說話者,而 dd 用來表示說話內容。
行內語義性元素主要完成web頁面具體內容的引用和描述,是豐富內容展示的基礎。
meter:表示特定范圍內的數值,可用于工資、數量、百分比等。
time:表示時間值。
progress:用來表示進度條,可通過對其 max 、 min 、 step 等屬性進行控制,完成對進度的表示和監(jiān)視。
video:視頻元素,用于支持和實現視頻文件的直接播放,支持緩沖預載和多種視頻媒體格式。
audio:音頻元素,用于支持和實現音頻文件的直接播放,支持緩沖預載和多種音頻媒體格式。
交互性元素主要用于功能性的內容表達,會有一定的內容和數據的關聯,是各種事件的基礎。
details:用來表示一段具體的內容,但是內容默認可能不顯示,通過某種手段(如單擊)與 legend 交互才會顯示出來。
datagrid:用來控制客戶端數據與顯示,可以由動態(tài)腳本及時更新。
menu:主要用于交互菜單(曾被廢棄又被重新啟用的元素)。
command:用來處理命令按鈕。
15、每個HTML文件里開頭都有個很重要的東西,Doctype,知道這是干什么的嗎?
告訴瀏覽器要以何種標準解析HTML頁面。
16、請你描述一下 cookies,sessionStorage 和 localStorage 的區(qū)別?
sessionStorage 和 localStorage 是 HTML5 Web Storage API 提供的,可以方便的在 web 請求之間保存數據。有了本地數據,就可以避免數據在瀏覽器和服務器間不必要地來回傳遞。
sessionStorage、 localStorage 、 cookie 都是在瀏覽器端存儲的數據,其中 sessionStorage 的概念很特別,引入了一個“瀏覽器窗口”的概念。 sessionStorage 是在同源的同窗口(或 tab )中,始終存在的數據。也就是說只要這個瀏覽器窗口沒有關閉,即使刷新頁面或進入同源另一頁面,數據仍然存在。關閉窗口后, sessionStorage 即被銷毀。同時“獨立”打開的不同窗口,即使是同一頁面, sessionStorage 對象也是不同的
cookies會發(fā)送到服務器端。其余兩個不會。
Microsoft 指出 Internet Explorer 8 增加 cookie 限制為每個域名 50 個,但 IE7 似乎也允許每個域名 50 個 cookie 。 Firefox 每個域名 cookie 限制為 50 個。 Opera 每個域名 cookie 限制為 30 個。 Firefox 和 Safari 允許 cookie 多達 4097 個字節(jié),包括名( name )、值( value )和等號。 Opera 許 cookie 多達 4096 個字節(jié),包括:名( name )、值( value )和等號。 Internet Explorer 允許 cookie 多達 4095 個字節(jié),包括:名( name )、值( value )和等號。
區(qū)別:
-
Cookie
- 每個域名存儲量比較?。ǜ鳛g覽器不同,大致 4K )
- 所有域名的存儲量有限制(各瀏覽器不同,大致 4K )
- 有個數限制(各瀏覽器不同)
- 會隨請求發(fā)送到服務器
-
LocalStorage
- 永久存儲
- 單個域名存儲量比較大(推薦 5MB ,各瀏覽器不同)
- 總體數量無限制
-
SessionStorage
- 只在 Session 內有效
- 存儲量更大(推薦沒有限制,但是實際上各瀏覽器也不同)
17、說說你對HTML語義化的理解
(1)什么是 HTML 語義化?
<基本上都是圍繞著幾個主要的標簽,像標題( H1~H6 )、列表( li )、強調( strong em )等等 >
根據內容的結構化(內容語義化),選擇合適的標簽(代碼語義化)便于開發(fā)者閱讀和寫出更優(yōu)雅的代碼的同時讓瀏覽器的爬蟲和機器很好地解析。
(2)為什么要語義化?
為了在沒有CSS的情況下,頁面也能呈現出很好地內容結構、代碼結構 : 為了裸奔時好看;
用戶體驗:例如title、 alt 用于解釋名詞或解釋圖片信息、 label 標簽的活用;
有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關鍵字的權重;
方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁;
便于團隊開發(fā)和維護,語義化更具可讀性,是下一步網頁的重要動向,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。
(3) 語義化標簽
<header></header>
<footer></footer>
<nav></nav>
<section></section>
<article></article> SM:用來在頁面中表示一套結構完整且獨立的內容部分
<aside></aside> SM:主題的附屬信息 ( 用途很廣,主要就是一個附屬內容 ) ,如果 article 里面為一篇文章的話,那么文章的作者以及信息內容就是這篇文章的附屬內容了
<figure></figure>SM:媒體元素,比如一些視頻,圖片啊等等
<datalist></datalist
SM:選項列表,與 input 元素配合使用,來定義 input 可能的值
<details></details>
SM:用于描述文檔或者文檔某個部分的細節(jié) ~ 默認屬性為 open~
ps:配合 summary 一起使用
18、超鏈接 target 屬性的取值和作用
target這個屬性指定所鏈接的頁面在瀏覽器窗口中的打開方式。
它的參數值主要有:
a、 _blank :在新瀏覽器窗口中打開鏈接文件
b、 _parent :將鏈接的文件載入含有該鏈接框架的父框架集或父窗口中。如果含有該鏈接的框架不是嵌套的,則在瀏覽器全屏窗口中載入鏈接的文件,就象 _self 參數一。
c、 _self :在同一框架或窗口中打開所鏈接的文檔。此參數為默認值,通常不用指定。
d、 _top :在當前的整個瀏覽器窗口中打開所鏈接的文檔,因而會刪除所有框架。
19、data- 屬性
data-為H5新增的為前端開發(fā)者提供自定義的屬性,這些屬性集可以通過對象的 dataset 屬性獲取,不支持該屬性的瀏覽器可以通過 getAttribute 方法獲取 :
需要注意的是:data-之后的以連字符分割的多個單詞組成的屬性,獲取的時候使用駝峰風格。 所有主流瀏覽器都支持 data-* 屬性。
即:當沒有合適的屬性和元素時,自定義的 data 屬性是能夠存儲頁面或 App 的私有的自定義數據。
20、如何實現瀏覽器內多個標簽頁之間的通信?
WebSocket、 SharedWorker
也可以調用localstorage、 cookies 等本地存儲方式;
localstorage另一個瀏覽上下文里被添加、修改或刪除時,它都會觸發(fā)一個事件,
我們通過監(jiān)聽事件,控制它的值來進行頁面信息通信;
21、簡述一下src與href的區(qū)別?
src用于替換當前元素, href 用于在當前文檔和引用資源之間確立聯系。
22、WebSocket與消息推送?
傳統的http協議是無法由服務端推送消息到客戶端的。只能用長輪詢的方式模擬實現長連接。
過去的實現方法:定時輪詢、長輪詢、長連接。
現在的方法:websocket。缺點:有些瀏覽器不支持,但是當代的庫可以做到降級處理。
- 事件驅動
- 異步
- 使用ws或者wss協議實現的
- 沒有跨域問題
- 能夠實現真正意義上的推送功能
23、img的title和alt有什么區(qū)別?
Alt 用于圖片無法加載時顯示 Title 為該屬性提供信息,通常當鼠標滑動到元素上的時候顯示
24、表單提交中Get和Post方式的區(qū)別?
(1)、 get 是從服務器上獲取數據, post 是向服務器傳送數據。
(2)、 get 是把參數數據隊列加到提交表單的 ACTION 屬性所指的 URL 中,值和表單內各個字段一一對應,在 URL 中可以看到。 post 是通過 HTTP post 機制,將表單內各個字段與其內容放置在 HTML HEADER 內一起傳送到 ACTION 屬性所指的 URL 地址 , 用戶看不到這個過程。
(3)、對于 get 方式,服務器端用 Request.QueryString 獲取變量的值,對于 post 方式,服務器端用 Request.Form 獲取提交的數據。
(4)、 get 傳送的數據量較小,不能大于 2KB 。 post 傳送的數據量較大,一般被默認為不受限制。但理論上, IIS4 中最大量為 80KB , IIS5 中為 100KB 。
(5)、 get 安全性低, post 安全性較高。
(6)、其實post請求也可以攜帶queryString。而且瀏覽器兼容性還不錯,項目中用過
(7)、但是get請求攜帶請求體body的行為,如果使用postman是可以的,但是使用瀏覽器發(fā)送此類請求不行,服務端收不到。(已經過驗證)
25、HTML5 有哪些新增的表單元素?
- datalist
- keygen
- output
后面兩個用的肯定特別少,可以忽略
26、HTML5 應用程序緩存和瀏覽器緩存有什么區(qū)別?
應用程序緩存是 <u>HTML5</u> 的重要特性之一,提供了離線使用的功能,讓應用程序可以獲取本地的網站內容,例如 HTML 、 CSS 、圖片以及 JavaScript 。這個特性可以提高網站性能,它的實現借助于 manifest 文件,如下:
<!doctype html>
<html manifest=”example.appcache”>
…..
</html>
與傳統瀏覽器緩存相比,它不強制用戶訪問的網站內容被緩存。
優(yōu)點:
- 離線瀏覽 - 用戶可在應用離線時使用它們
- 速度 - 已緩存資源加載得更快
- 減少服務器負載 - 瀏覽器將只從服務器下載更新過或更改過的資源