1.一些開放性題目
1.自我介紹:除了基本個(gè)人信息以外圈匆,面試官更想聽的是你與眾不同的地方和你的優(yōu)勢(shì)。
2.項(xiàng)目介紹
3.如何看待前端開發(fā)?
4.平時(shí)是如何學(xué)習(xí)前端開發(fā)的柳沙?
5.未來(lái)三到五年的規(guī)劃是怎樣的?
position的值拌倍, relative和absolute分別是相對(duì)于誰(shuí)進(jìn)行定位的赂鲤?
absolute :生成絕對(duì)定位的元素噪径, 相對(duì)于最近一級(jí)的 定位不是 static 的父元素來(lái)進(jìn)行定位。
fixed (老IE不支持)生成絕對(duì)定位的元素数初,通常相對(duì)于瀏覽器窗口或 frame 進(jìn)行定位找爱。
relative 生成相對(duì)定位的元素,相對(duì)于其在普通流中的位置進(jìn)行定位泡孩。
static 默認(rèn)值车摄。沒有定位,元素出現(xiàn)在正常的流中
sticky 生成粘性定位的元素仑鸥,容器的位置根據(jù)正常文檔流計(jì)算得出
如何解決跨域問題
JSONP:
原理是:動(dòng)態(tài)插入script標(biāo)簽吮播,通過(guò)script標(biāo)簽引入一個(gè)js文件,這個(gè)js文件載入成功后會(huì)執(zhí)行我們?cè)趗rl參數(shù)中指定的函數(shù)眼俊,并且會(huì)把我們需要的json數(shù)據(jù)作為參數(shù)傳入意狠。
由于同源策略的限制,XmlHttpRequest只允許請(qǐng)求當(dāng)前源(域名疮胖、協(xié)議环戈、端口)的資源,為了實(shí)現(xiàn)跨域請(qǐng)求获列,可以通過(guò)script標(biāo)簽實(shí)現(xiàn)跨域請(qǐng)求谷市,然后在服務(wù)端輸出JSON數(shù)據(jù)并執(zhí)行回調(diào)函數(shù),從而解決了跨域的數(shù)據(jù)請(qǐng)求击孩。
優(yōu)點(diǎn)是兼容性好迫悠,簡(jiǎn)單易用,支持瀏覽器與服務(wù)器雙向通信巩梢。缺點(diǎn)是只支持GET請(qǐng)求创泄。
JSONP:json+padding(內(nèi)填充),顧名思義括蝠,就是把JSON填充到一個(gè)盒子里
<script>
? ? function createJs(sUrl){
? ? ? ? var oScript = document.createElement('script');
? ? ? ? oScript.type = 'text/javascript';
? ? ? ? oScript.src = sUrl;
? ? ? ? document.getElementsByTagName('head')[0].appendChild(oScript);
? ? }
? ? createJs('jsonp.js');
? ? box({
? ? ? 'name': 'test'
? ? });
? ? function box(json){
? ? ? ? alert(json.name);
? ? }
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CORS
服務(wù)器端對(duì)于CORS的支持鞠抑,主要就是通過(guò)設(shè)置Access-Control-Allow-Origin來(lái)進(jìn)行的。如果瀏覽器檢測(cè)到相應(yīng)的設(shè)置忌警,就可以允許Ajax進(jìn)行跨域的訪問搁拙。
通過(guò)修改document.domain來(lái)跨子域
將子域和主域的document.domain設(shè)為同一個(gè)主域.前提條件:這兩個(gè)域名必須屬于同一個(gè)基礎(chǔ)域名!而且所用的協(xié)議,端口都要一致法绵,否則無(wú)法利用document.domain進(jìn)行跨域
主域相同的使用document.domain
使用window.name來(lái)進(jìn)行跨域
window對(duì)象有個(gè)name屬性箕速,該屬性有個(gè)特征:即在一個(gè)窗口(window)的生命周期內(nèi),窗口載入的所有的頁(yè)面都是共享一個(gè)window.name的,每個(gè)頁(yè)面對(duì)window.name都有讀寫的權(quán)限朋譬,window.name是持久存在一個(gè)窗口載入過(guò)的所有頁(yè)面中的
使用HTML5中新引進(jìn)的window.postMessage方法來(lái)跨域傳送數(shù)據(jù)
還有flash盐茎、在服務(wù)器上設(shè)置代理頁(yè)面等跨域方式。個(gè)人認(rèn)為window.name的方法既不復(fù)雜徙赢,也能兼容到幾乎所有瀏覽器字柠,這真是極好的一種跨域方法探越。
XML和JSON的區(qū)別?
(1).數(shù)據(jù)體積方面窑业。
JSON相對(duì)于XML來(lái)講钦幔,數(shù)據(jù)的體積小,傳遞的速度更快些数冬。
(2).數(shù)據(jù)交互方面节槐。
JSON與JavaScript的交互更加方便,更容易解析處理拐纱,更好的數(shù)據(jù)交互铜异。
(3).數(shù)據(jù)描述方面。
JSON對(duì)數(shù)據(jù)的描述性比XML較差秸架。
(4).傳輸速度方面揍庄。
JSON的速度要遠(yuǎn)遠(yuǎn)快于XML。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
談?wù)勀銓?duì)webpack的看法
WebPack 是一個(gè)模塊打包工具东抹,你可以使用WebPack管理你的模塊依賴蚂子,并編繹輸出模塊們所需的靜態(tài)文件。它能夠很好地管理缭黔、打包Web開發(fā)中所用到的HTML食茎、JavaScript、CSS以及各種靜態(tài)文件(圖片馏谨、字體等)别渔,讓開發(fā)過(guò)程更加高效。對(duì)于不同類型的資源惧互,webpack有對(duì)應(yīng)的模塊加載器哎媚。webpack模塊打包器會(huì)分析模塊間的依賴關(guān)系,最后 生成了優(yōu)化且合并后的靜態(tài)資源喊儡。
webpack的兩大特色:
1.code splitting(可以自動(dòng)完成)
2.loader 可以處理各種類型的靜態(tài)文件拨与,并且支持串聯(lián)操作
webpack 是以commonJS的形式來(lái)書寫腳本滴,但對(duì) AMD/CMD 的支持也很全面艾猜,方便舊項(xiàng)目進(jìn)行代碼遷移买喧。
webpack具有requireJs和browserify的功能,但仍有很多自己的新特性:
1. 對(duì) CommonJS 匆赃、 AMD 淤毛、ES6的語(yǔ)法做了兼容
2. 對(duì)js、css炸庞、圖片等資源文件都支持打包
3. 串聯(lián)式模塊加載器以及插件機(jī)制钱床,讓其具有更好的靈活性和擴(kuò)展性荚斯,例如提供對(duì)CoffeeScript埠居、ES6的支持
4. 有獨(dú)立的配置文件webpack.config.js
5. 可以將代碼切割成不同的chunk查牌,實(shí)現(xiàn)按需加載,降低了初始化時(shí)間
6. 支持 SourceUrls 和 SourceMaps滥壕,易于調(diào)試
7. 具有強(qiáng)大的Plugin接口纸颜,大多是內(nèi)部插件,使用起來(lái)比較靈活
8.webpack 使用異步 IO 并具有多級(jí)緩存绎橘。這使得 webpack 很快且在增量編譯上更加快
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
說(shuō)說(shuō)TCP傳輸?shù)娜挝帐炙拇螕]手策略
為了準(zhǔn)確無(wú)誤地把數(shù)據(jù)送達(dá)目標(biāo)處胁孙,TCP協(xié)議采用了三次握手策略。用TCP協(xié)議把數(shù)據(jù)包送出去后称鳞,TCP不會(huì)對(duì)傳送 后的情況置之不理涮较,它一定會(huì)向?qū)Ψ酱_認(rèn)是否成功送達(dá)。握手過(guò)程中使用了TCP的標(biāo)志:SYN和ACK冈止。
發(fā)送端首先發(fā)送一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包給對(duì)方狂票。接收端收到后,回傳一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息熙暴。
最后闺属,發(fā)送端再回傳一個(gè)帶ACK標(biāo)志的數(shù)據(jù)包,代表“握手”結(jié)束周霉。
若在握手過(guò)程中某個(gè)階段莫名中斷掂器,TCP協(xié)議會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包。
斷開一個(gè)TCP連接則需要“四次握手”:
第一次揮手:主動(dòng)關(guān)閉方發(fā)送一個(gè)FIN俱箱,用來(lái)關(guān)閉主動(dòng)方到被動(dòng)關(guān)閉方的數(shù)據(jù)傳送国瓮,也就是主動(dòng)關(guān)閉方告訴被動(dòng)關(guān)閉方:我已經(jīng)不 會(huì)再給你發(fā)數(shù)據(jù)了(當(dāng)然,在fin包之前發(fā)送出去的數(shù)據(jù)匠楚,如果沒有收到對(duì)應(yīng)的ack確認(rèn)報(bào)文巍膘,主動(dòng)關(guān)閉方依然會(huì)重發(fā)這些數(shù)據(jù)),但是芋簿,此時(shí)主動(dòng)關(guān)閉方還可 以接受數(shù)據(jù)峡懈。
第二次揮手:被動(dòng)關(guān)閉方收到FIN包后,發(fā)送一個(gè)ACK給對(duì)方与斤,確認(rèn)序號(hào)為收到序號(hào)+1(與SYN相同肪康,一個(gè)FIN占用一個(gè)序號(hào))。
第三次揮手:被動(dòng)關(guān)閉方發(fā)送一個(gè)FIN撩穿,用來(lái)關(guān)閉被動(dòng)關(guān)閉方到主動(dòng)關(guān)閉方的數(shù)據(jù)傳送磷支,也就是告訴主動(dòng)關(guān)閉方,我的數(shù)據(jù)也發(fā)送完了食寡,不會(huì)再給你發(fā)數(shù)據(jù)了雾狈。
第四次揮手:主動(dòng)關(guān)閉方收到FIN后,發(fā)送一個(gè)ACK給被動(dòng)關(guān)閉方抵皱,確認(rèn)序號(hào)為收到序號(hào)+1善榛,至此辩蛋,完成四次揮手。
TCP和UDP的區(qū)別
TCP(Transmission Control Protocol移盆,傳輸控制協(xié)議)是基于連接的協(xié)議悼院,也就是說(shuō),在正式收發(fā)數(shù)據(jù)前咒循,必須和對(duì)方建立可靠的連接据途。一個(gè)TCP連接必須要經(jīng)過(guò)三次“對(duì)話”才能建立起來(lái)
UDP(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是與TCP相對(duì)應(yīng)的協(xié)議叙甸。它是面向非連接的協(xié)議颖医,它不與對(duì)方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過(guò)去裆蒸!
UDP適用于一次只傳送少量數(shù)據(jù)便脊、對(duì)可靠性要求不高的應(yīng)用環(huán)境。
說(shuō)說(shuō)你對(duì)作用域鏈的理解
作用域鏈的作用是保證執(zhí)行環(huán)境里有權(quán)訪問的變量和函數(shù)是有序的光戈,作用域鏈的變量只能向上訪問哪痰,變量訪問到window對(duì)象即被終止,作用域鏈向下訪問變量是不被允許的久妆。
創(chuàng)建ajax過(guò)程
(1)創(chuàng)建XMLHttpRequest對(duì)象,也就是創(chuàng)建一個(gè)異步調(diào)用對(duì)象.
(2)創(chuàng)建一個(gè)新的HTTP請(qǐng)求,并指定該HTTP請(qǐng)求的方法晌杰、URL及驗(yàn)證信息.
(3)設(shè)置響應(yīng)HTTP請(qǐng)求狀態(tài)變化的函數(shù).
(4)發(fā)送HTTP請(qǐng)求.
(5)獲取異步調(diào)用返回的數(shù)據(jù).
(6)使用JavaScript和DOM實(shí)現(xiàn)局部刷新.
1
2
3
4
5
6
7
8
9
10
11
漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)
漸進(jìn)增強(qiáng) :針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面,保證最基本的功能筷弦,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果肋演、交互等改進(jìn)和追加功能達(dá)到更好的用戶體驗(yàn)。
優(yōu)雅降級(jí) :一開始就構(gòu)建完整的功能烂琴,然后再針對(duì)低版本瀏覽器進(jìn)行兼容爹殊。
常見web安全及防護(hù)原理
sql注入原理
就是通過(guò)把SQL命令插入到Web表單遞交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令奸绷。
總的來(lái)說(shuō)有以下幾點(diǎn):
? ? 1.永遠(yuǎn)不要信任用戶的輸入梗夸,要對(duì)用戶的輸入進(jìn)行校驗(yàn),可以通過(guò)正則表達(dá)式号醉,或限制長(zhǎng)度反症,對(duì)單引號(hào)和雙"-"進(jìn)行轉(zhuǎn)換等。
? ? 2.永遠(yuǎn)不要使用動(dòng)態(tài)拼裝SQL畔派,可以使用參數(shù)化的SQL或者直接使用存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)查詢存取铅碍。
? ? 3.永遠(yuǎn)不要使用管理員權(quán)限的1.一些開放性題目
1.自我介紹:除了基本個(gè)人信息以外,面試官更想聽的是你與眾不同的地方和你的優(yōu)勢(shì)线椰。
2.項(xiàng)目介紹
3.如何看待前端開發(fā)绣夺?
4.平時(shí)是如何學(xué)習(xí)前端開發(fā)的螟左?
5.未來(lái)三到五年的規(guī)劃是怎樣的统舀?
position的值, relative和absolute分別是相對(duì)于誰(shuí)進(jìn)行定位的悔叽?
absolute :生成絕對(duì)定位的元素, 相對(duì)于最近一級(jí)的 定位不是 static 的父元素來(lái)進(jìn)行定位爵嗅。
fixed (老IE不支持)生成絕對(duì)定位的元素,通常相對(duì)于瀏覽器窗口或 frame 進(jìn)行定位笨蚁。
relative 生成相對(duì)定位的元素睹晒,相對(duì)于其在普通流中的位置進(jìn)行定位。
static 默認(rèn)值括细。沒有定位伪很,元素出現(xiàn)在正常的流中
sticky 生成粘性定位的元素,容器的位置根據(jù)正常文檔流計(jì)算得出
如何解決跨域問題
JSONP:
原理是:動(dòng)態(tài)插入script標(biāo)簽奋单,通過(guò)script標(biāo)簽引入一個(gè)js文件锉试,這個(gè)js文件載入成功后會(huì)執(zhí)行我們?cè)趗rl參數(shù)中指定的函數(shù),并且會(huì)把我們需要的json數(shù)據(jù)作為參數(shù)傳入览濒。
由于同源策略的限制呆盖,XmlHttpRequest只允許請(qǐng)求當(dāng)前源(域名、協(xié)議贷笛、端口)的資源应又,為了實(shí)現(xiàn)跨域請(qǐng)求,可以通過(guò)script標(biāo)簽實(shí)現(xiàn)跨域請(qǐng)求乏苦,然后在服務(wù)端輸出JSON數(shù)據(jù)并執(zhí)行回調(diào)函數(shù)株扛,從而解決了跨域的數(shù)據(jù)請(qǐng)求。
優(yōu)點(diǎn)是兼容性好汇荐,簡(jiǎn)單易用洞就,支持瀏覽器與服務(wù)器雙向通信。缺點(diǎn)是只支持GET請(qǐng)求掀淘。
JSONP:json+padding(內(nèi)填充)旬蟋,顧名思義,就是把JSON填充到一個(gè)盒子里
<script>
? ? function createJs(sUrl){
? ? ? ? var oScript = document.createElement('script');
? ? ? ? oScript.type = 'text/javascript';
? ? ? ? oScript.src = sUrl;
? ? ? ? document.getElementsByTagName('head')[0].appendChild(oScript);
? ? }
? ? createJs('jsonp.js');
? ? box({
? ? ? 'name': 'test'
? ? });
? ? function box(json){
? ? ? ? alert(json.name);
? ? }
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CORS
服務(wù)器端對(duì)于CORS的支持革娄,主要就是通過(guò)設(shè)置Access-Control-Allow-Origin來(lái)進(jìn)行的咖为。如果瀏覽器檢測(cè)到相應(yīng)的設(shè)置,就可以允許Ajax進(jìn)行跨域的訪問稠腊。
通過(guò)修改document.domain來(lái)跨子域
將子域和主域的document.domain設(shè)為同一個(gè)主域.前提條件:這兩個(gè)域名必須屬于同一個(gè)基礎(chǔ)域名!而且所用的協(xié)議躁染,端口都要一致,否則無(wú)法利用document.domain進(jìn)行跨域
主域相同的使用document.domain
使用window.name來(lái)進(jìn)行跨域
window對(duì)象有個(gè)name屬性架忌,該屬性有個(gè)特征:即在一個(gè)窗口(window)的生命周期內(nèi),窗口載入的所有的頁(yè)面都是共享一個(gè)window.name的吞彤,每個(gè)頁(yè)面對(duì)window.name都有讀寫的權(quán)限,window.name是持久存在一個(gè)窗口載入過(guò)的所有頁(yè)面中的
使用HTML5中新引進(jìn)的window.postMessage方法來(lái)跨域傳送數(shù)據(jù)
還有flash、在服務(wù)器上設(shè)置代理頁(yè)面等跨域方式饰恕。個(gè)人認(rèn)為window.name的方法既不復(fù)雜挠羔,也能兼容到幾乎所有瀏覽器,這真是極好的一種跨域方法埋嵌。
XML和JSON的區(qū)別破加?
(1).數(shù)據(jù)體積方面。
JSON相對(duì)于XML來(lái)講雹嗦,數(shù)據(jù)的體積小范舀,傳遞的速度更快些。
(2).數(shù)據(jù)交互方面了罪。
JSON與JavaScript的交互更加方便锭环,更容易解析處理,更好的數(shù)據(jù)交互泊藕。
(3).數(shù)據(jù)描述方面辅辩。
JSON對(duì)數(shù)據(jù)的描述性比XML較差。
(4).傳輸速度方面娃圆。
JSON的速度要遠(yuǎn)遠(yuǎn)快于XML玫锋。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
談?wù)勀銓?duì)webpack的看法
WebPack 是一個(gè)模塊打包工具,你可以使用WebPack管理你的模塊依賴讼呢,并編繹輸出模塊們所需的靜態(tài)文件景醇。它能夠很好地管理、打包Web開發(fā)中所用到的HTML吝岭、JavaScript三痰、CSS以及各種靜態(tài)文件(圖片、字體等)窜管,讓開發(fā)過(guò)程更加高效散劫。對(duì)于不同類型的資源,webpack有對(duì)應(yīng)的模塊加載器幕帆。webpack模塊打包器會(huì)分析模塊間的依賴關(guān)系获搏,最后 生成了優(yōu)化且合并后的靜態(tài)資源。
webpack的兩大特色:
1.code splitting(可以自動(dòng)完成)
2.loader 可以處理各種類型的靜態(tài)文件失乾,并且支持串聯(lián)操作
webpack 是以commonJS的形式來(lái)書寫腳本滴常熙,但對(duì) AMD/CMD 的支持也很全面,方便舊項(xiàng)目進(jìn)行代碼遷移碱茁。
webpack具有requireJs和browserify的功能裸卫,但仍有很多自己的新特性:
1. 對(duì) CommonJS 、 AMD 纽竣、ES6的語(yǔ)法做了兼容
2. 對(duì)js墓贿、css茧泪、圖片等資源文件都支持打包
3. 串聯(lián)式模塊加載器以及插件機(jī)制,讓其具有更好的靈活性和擴(kuò)展性聋袋,例如提供對(duì)CoffeeScript队伟、ES6的支持
4. 有獨(dú)立的配置文件webpack.config.js
5. 可以將代碼切割成不同的chunk,實(shí)現(xiàn)按需加載幽勒,降低了初始化時(shí)間
6. 支持 SourceUrls 和 SourceMaps嗜侮,易于調(diào)試
7. 具有強(qiáng)大的Plugin接口,大多是內(nèi)部插件啥容,使用起來(lái)比較靈活
8.webpack 使用異步 IO 并具有多級(jí)緩存锈颗。這使得 webpack 很快且在增量編譯上更加快
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
說(shuō)說(shuō)TCP傳輸?shù)娜挝帐炙拇螕]手策略
為了準(zhǔn)確無(wú)誤地把數(shù)據(jù)送達(dá)目標(biāo)處,TCP協(xié)議采用了三次握手策略干毅。用TCP協(xié)議把數(shù)據(jù)包送出去后,TCP不會(huì)對(duì)傳送 后的情況置之不理泼返,它一定會(huì)向?qū)Ψ酱_認(rèn)是否成功送達(dá)硝逢。握手過(guò)程中使用了TCP的標(biāo)志:SYN和ACK。
發(fā)送端首先發(fā)送一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包給對(duì)方绅喉。接收端收到后渠鸽,回傳一個(gè)帶有SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息。
最后柴罐,發(fā)送端再回傳一個(gè)帶ACK標(biāo)志的數(shù)據(jù)包徽缚,代表“握手”結(jié)束。
若在握手過(guò)程中某個(gè)階段莫名中斷革屠,TCP協(xié)議會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包凿试。
斷開一個(gè)TCP連接則需要“四次握手”:
第一次揮手:主動(dòng)關(guān)閉方發(fā)送一個(gè)FIN,用來(lái)關(guān)閉主動(dòng)方到被動(dòng)關(guān)閉方的數(shù)據(jù)傳送似芝,也就是主動(dòng)關(guān)閉方告訴被動(dòng)關(guān)閉方:我已經(jīng)不 會(huì)再給你發(fā)數(shù)據(jù)了(當(dāng)然那婉,在fin包之前發(fā)送出去的數(shù)據(jù),如果沒有收到對(duì)應(yīng)的ack確認(rèn)報(bào)文党瓮,主動(dòng)關(guān)閉方依然會(huì)重發(fā)這些數(shù)據(jù))详炬,但是,此時(shí)主動(dòng)關(guān)閉方還可 以接受數(shù)據(jù)寞奸。
第二次揮手:被動(dòng)關(guān)閉方收到FIN包后呛谜,發(fā)送一個(gè)ACK給對(duì)方,確認(rèn)序號(hào)為收到序號(hào)+1(與SYN相同枪萄,一個(gè)FIN占用一個(gè)序號(hào))隐岛。
第三次揮手:被動(dòng)關(guān)閉方發(fā)送一個(gè)FIN,用來(lái)關(guān)閉被動(dòng)關(guān)閉方到主動(dòng)關(guān)閉方的數(shù)據(jù)傳送瓷翻,也就是告訴主動(dòng)關(guān)閉方礼仗,我的數(shù)據(jù)也發(fā)送完了,不會(huì)再給你發(fā)數(shù)據(jù)了。
第四次揮手:主動(dòng)關(guān)閉方收到FIN后元践,發(fā)送一個(gè)ACK給被動(dòng)關(guān)閉方韭脊,確認(rèn)序號(hào)為收到序號(hào)+1,至此单旁,完成四次揮手沪羔。
TCP和UDP的區(qū)別
TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議象浑,也就是說(shuō)蔫饰,在正式收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接愉豺。一個(gè)TCP連接必須要經(jīng)過(guò)三次“對(duì)話”才能建立起來(lái)
UDP(User Data Protocol篓吁,用戶數(shù)據(jù)報(bào)協(xié)議)是與TCP相對(duì)應(yīng)的協(xié)議。它是面向非連接的協(xié)議蚪拦,它不與對(duì)方建立連接杖剪,而是直接就把數(shù)據(jù)包發(fā)送過(guò)去!
UDP適用于一次只傳送少量數(shù)據(jù)驰贷、對(duì)可靠性要求不高的應(yīng)用環(huán)境盛嘿。
說(shuō)說(shuō)你對(duì)作用域鏈的理解
作用域鏈的作用是保證執(zhí)行環(huán)境里有權(quán)訪問的變量和函數(shù)是有序的,作用域鏈的變量只能向上訪問括袒,變量訪問到window對(duì)象即被終止次兆,作用域鏈向下訪問變量是不被允許的。
創(chuàng)建ajax過(guò)程
(1)創(chuàng)建XMLHttpRequest對(duì)象,也就是創(chuàng)建一個(gè)異步調(diào)用對(duì)象.
(2)創(chuàng)建一個(gè)新的HTTP請(qǐng)求,并指定該HTTP請(qǐng)求的方法锹锰、URL及驗(yàn)證信息.
(3)設(shè)置響應(yīng)HTTP請(qǐng)求狀態(tài)變化的函數(shù).
(4)發(fā)送HTTP請(qǐng)求.
(5)獲取異步調(diào)用返回的數(shù)據(jù).
(6)使用JavaScript和DOM實(shí)現(xiàn)局部刷新.
1
2
3
4
5
6
7
8
9
10
11
漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)
漸進(jìn)增強(qiáng) :針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面芥炭,保證最基本的功能,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果恃慧、交互等改進(jìn)和追加功能達(dá)到更好的用戶體驗(yàn)蚤认。
優(yōu)雅降級(jí) :一開始就構(gòu)建完整的功能,然后再針對(duì)低版本瀏覽器進(jìn)行兼容糕伐。
常見web安全及防護(hù)原理
sql注入原理
就是通過(guò)把SQL命令插入到Web表單遞交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串砰琢,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。
總的來(lái)說(shuō)有以下幾點(diǎn):
? ? 1.永遠(yuǎn)不要信任用戶的輸入良瞧,要對(duì)用戶的輸入進(jìn)行校驗(yàn)陪汽,可以通過(guò)正則表達(dá)式,或限制長(zhǎng)度褥蚯,對(duì)單引號(hào)和雙"-"進(jìn)行轉(zhuǎn)換等挚冤。
? ? 2.永遠(yuǎn)不要使用動(dòng)態(tài)拼裝SQL,可以使用參數(shù)化的SQL或者直接使用存儲(chǔ)過(guò)程進(jìn)行數(shù)據(jù)查詢存取赞庶。
? ? 3.永遠(yuǎn)不要使用管理員權(quán)限的