亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

前端開發面試題總結之——JAVASCRIPT(一)

2019-11-08 02:28:23
字體:
來源:轉載
供稿:網友

http://www.jianshu.com/p/fc1faa8730b2

相關知識點

數據類型、運算、對象、function、繼承、閉包、作用域、原型鏈、事件、RegExp、JSON、Ajax、DOM、BOM、內存泄漏、跨域、異步加載、模板引擎、前端MVC、前端MVVM、路由、模塊化、Http、Canvas、jQuery、ECMAScript 2015(ES6)、Node.js、AngularJS、Vue、React......

題目&答案

介紹一下 JS 的基本數據類型。Undefined、Null、Boolean、Number、String介紹一下 JS 有哪些內置對象。Object 是 javaScript 中所有對象的父對象數據封裝類對象:Object、Array、Boolean、Number、String其他對象:Function、Argument、Math、Date、RegExp、Error列舉幾條 Javascript 的基本代碼規范。(1)不要在同一行聲明多個變量(2)如果你不知道數組的長度,使用 push(3)請使用 ===/!== 來比較 true/false 或者數值(4)對字符串使用單引號 ''(因為大多時候我們的字符串。特別html會出現")(5)使用對象字面量替代 new Array 這種形式(6)絕對不要在一個非函數塊里聲明一個函數,把那個函數賦給一個變量。瀏覽器允許你這么做,但是它們解析不同(7)不要使用全局函數(8)總是使用 var 來聲明變量,如果不這么做將導致產生全局變量,我們要避免污染全局命名空間(9)Switch 語句必須帶有 default 分支(10)使用 /**...*/ 進行多行注釋,包括描述,指定類型以及參數值和返回值(11)函數不應該有時候有返回值,有時候沒有返回值(12)語句結束一定要加分號(13)for 循環必須使用大括號(14)if 語句必須使用大括號(15)for-in 循環中的變量應該使用 var 關鍵字明確限定作用域,從而避免作用域污染(16)避免單個字符名,讓你的變量名有描述意義(17)當命名對象、函數和實例時使用駝峰命名規則(18)給對象原型分配方法,而不是用一個新的對象覆蓋原型,覆蓋原型會使繼承出現問題(19)當給事件附加數據時,傳入一個哈希而不是原始值,這可以讓后面的貢獻者加入更多數據到事件數據里,而不用找出并更新那個事件的事件處理器call和apply的作用是什么?區別是什么?call和apply的功能基本相同,都是實現繼承或者轉換對象指針的作用;唯一不通的是前者參數是羅列出來的,后者是存到數組中的;call或apply功能就是實現繼承的;與面向對象的繼承extends功能相似;但寫法不同;語法:.call(對象[,參數1,參數2,....]);//此地參數是指的是對象的參數,非方法的參數;.apply(對象,參數數組)//參數數組的形式:[參數1,參數2,......]push()-pop()-shift()-unshift()分別是什么功能?push 方法將新元素添加到一個數組中,并返回數組的新長度值。var a=[1,2,3,4];a.push(5);pop 方法移除數組中的最后一個元素并返回該元素。var a=[1,2,3,4];a.pop();shift 方法移除數組中的第一個元素并返回該元素。var a=[1,2];alert(a.shift());unshift 方法將指定的元素插入數組開始位置并返回該數組。試寫出大于1024并小于1360屏幕的媒體查詢關鍵CSS代碼if ((screen.width == 1360) && (screen.height == 1024)){ setActiveStyleSheet(CSS1);}表述您對javascript this工作原理的理解在函數中:this 通常是一個隱含的參數。在函數外(頂級作用域中):在瀏覽器中this 指的是全局對象;在Node.js中指的是模塊(module)的導出(exports)。傳遞到eval()中的字符串:如果eval()是被直接調用的,this 指的是當前對象;如果eval()是被間接調用的,this 就是指全局對象。介紹一下 JavaScript 原型,原型鏈,它們有何特點?每個對象都會在其內部初始化一個屬性,就是PRototype(原型),當我們訪問一個對象的屬性時,如果這個對象內部不存在這個屬性,那么他就會去prototype里找這個屬性,這個prototype又會有自己的prototype,于是就這樣一直找下去,也就是我們平時所說的原型鏈的概念。關系:instance.constructor.prototype = instance.__proto__特點:JavaScript對象是通過引用來傳遞的,我們創建的每個新對象實體中并沒有一份屬于自己的原型副本,當我們修改原型時,與之相關的對象也會繼承這一改變。當我們需要一個屬性時,JavaScript引擎會先看當前對象中是否有這個屬性,如果沒有的話,就會查找它的prototype對象是否有這個屬性,如此遞推下去,一致檢索到Object內建對象。function Func(){}Func.prototype.name = "Xiaosong";Func.prototype.getInfo = function() { return this.name;}var person = new Func();console.log(person.getInfo());//"Xiaosong"console.log(Func.prototype);//Func { name = "Xiaosong", getInfo = function() }JavaScript 有幾種類型的值?能否畫一下它們的內存圖?棧:原始數據類型(Undefined,Null,Boolean,Number,String)堆:引用數據類型(對象、數組、函數)兩種類型的區別://存儲位置不同原始數據類型直接存儲在棧(stack)中的簡單數據段,占據空間小、大小固定,屬于被頻繁使用數據,所以放入棧中存儲;引用數據類型存儲在堆(heap)中的對象,占據空間大、大小不固定,如果存儲在棧中,將會影響程序運行的性能;引用數據類型在棧中存儲了指針,該指針指向堆中該實體的起始地址。當解釋器尋找引用值時,會首先檢索其在棧中的地址,取得地址后從堆中獲得實體。JavaScript 如何實現繼承?(1)構造繼承(2)原型繼承(3)實例繼承(4)拷貝繼承//原型prototype機制或apply和call方法去實現較簡單,建議使用構造函數與原型混合方式。function Parent() { this.name = 'song';}function Child() { this.age = 28;}Child.prototype = new Parent(); //通過原型,繼承了Parentvar demo = new Child();alert(demo.age);alert(demo.name); //得到被繼承的屬性JavaScript 有哪幾種創建對象的方式?javascript創建對象簡單的說,無非就是使用內置對象或各種自定義對象,當然還可以用JSON;但寫法有很多種,也能混合使用。//(1)對象字面量的方式person={firstname:"Mark",lastname:"Yun",age:25,eyecolor:"black"};(2)用function來模擬無參的構造函數function Person(){}var person = new Person(); //定義一個function,如果使用new"實例化",該function可以看作是一個Classperson.name = "Xiaosong";person.age = "23";person.work = function() { alert("Hello " + person.name);}person.work();(3)用function來模擬參構造函數來實現(用this關鍵字定義構造的上下文屬性)function Person(name,age,hobby) { this.name = name; //this作用域:當前對象 this.age = age; this.work = work; this.info = function() { alert("我叫" + this.name + ",今年" + this.age + "歲,是個" + this.work); }}var Xiaosong = new Person("WooKong",23,"程序猿"); //實例化、創建對象Xiaosong.info(); //調用info()方法(4)用工廠方式來創建(內置對象)var jsCreater = new Object();jsCreater.name = "Brendan Eich"; //JavaScript的發明者jsCreater.work = "JavaScript";jsCreater.info = function() { alert("我是"+this.work+"的發明者"+this.name);}jsCreater.info();(5)用原型方式來創建function Standard(){}Standard.prototype.name = "ECMAScript";Standard.prototype.event = function() { alert(this.name+"是腳本語言標準規范");}var jiaoben = new Standard();jiaoben.event();(6)用混合方式來創建function iPhone(name,event) { this.name = name; this.event = event;}iPhone.prototype.sell = function() { alert("我是"+this.name+",我是iPhone5s的"+this.event+"~ haha!");}var SE = new iPhone("iPhone SE","官方翻新機");SE.sell();eval 是做什么的?它的功能是把對應的字符串解析成JS代碼并運行;應該避免使用eval,因為不安全,非常耗性能(2次,一次解析成js語句,一次執行)。null 和 undefined 有何區別?null 表示一個對象被定義了,值為“空值”;undefined 表示不存在這個值。typeof undefined //"undefined"undefined :是一個表示"無"的原始值或者說表示"缺少值",就是此處應該有一個值,但是還沒有定義。當嘗試讀取時會返回 undefined; 例如變量被聲明了,但沒有賦值時,就等于undefined。typeof null //"object" null : 是一個對象(空對象, 沒有任何屬性和方法); 例如作為函數的參數,表示該函數的參數不是對象;注意: 在驗證null時,一定要使用 === ,因為 == 無法分別 null 和 undefined能否寫一個通用的事件偵聽器函數?//Event工具集,from:github.com/markyunmarkyun.Event = { //頁面加載完成后 readyEvent: function(fn) { if (fn == null) { fn = document; } var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = fn; }else{ window.onload = function() { oldonload(); fn(); }; } }, //視能力分別使用 demo0 || demo1 || IE 方式來綁定事件 //參數:操作的元素,事件名稱,事件處理程序 addEvent: function(element,type,handler) { if (element.addEventListener) { //事件類型、需要執行的函數、是否捕捉 element.addEventListener(type,handler,false); }else if (element.attachEvent) { element.attachEvent('on' + type, function() { handler.call(element); }); }else { element['on' + type] = handler; } }, //移除事件 removeEvent: function(element,type,handler) { if (element.removeEventListener) { element.removeEventListener(type,handler,false); }else if (element.datachEvent) { element.datachEvent('on' + type,handler); }else{ element['on' + type] = null; } }, //阻止事件(主要是事件冒泡,因為IE不支持事件捕獲) stopPropagation: function(ev) { if (ev.stopPropagation) { ev.stopPropagation(); }else { ev.cancelBubble = true; } }, //取消事件的默認行為 preventDefault: function(event) { if (event.preventDefault) { event.preventDefault(); }else{ event.returnValue = false; } }, //獲取事件目標 getTarget: function(event) { return event.target || event.srcElemnt; }, //獲取event對象的引用,取到事件的所有信息,確保隨時能使用event; getEvent: function(e) { var ev = e || window.event; if (!ev) { var c = this.getEvent.caller; while(c) { ev = c.argument[0]; if (ev && Event == ev.constructor) { break; } c = c.caller; } } retrun ev; }};["1","2","3"].map(parseInt) 的答案是多少?[1,NaN,NaN]因為 parseInt 需要兩個參數(val,radix),其中 radix 表示解析時用的基數。map 傳了3個(element,index,array),對應的 radix 不合法導致解析失敗。事件是什么?IE與火狐的事件機制有何區別?如何阻止冒泡?(1)我們在網頁中的某個操作(有的操作對應多個事件)。 例如:當我們點擊一個按鈕就會產生一個事件。是可以被 JavaScript 偵測到的行為。(2)事件處理機制:IE是事件冒泡、Firefox同時支持兩種事件模型,也就是:捕獲型事件和冒泡型事件;(3)ev.stopPropagation();(舊ie的方法 ev.cancelBubble = true;)什么是閉包(closure),為什么要用它?閉包是指有權訪問另一個函數作用域中變量的函數,創建閉包的最常見的方式就是在一個函數內創建另一個函數,通過另一個函數訪問這個函數的局部變量,利用閉包可以突破作用鏈域,將函數內部的變量和方法傳遞到外部。//閉包特性:(1)函數內再嵌套函數(2)內部函數可以引用外層的參數和變量(3)參數和變量不會被垃圾回收機制回收//li節點的onclick事件都能正確的彈出當前被點擊的li索引<ul> <li> index = 0 </li> <li> index = 1 </li> <li> index = 2 </li> <li> index = 3 </li></ul><script type="text/javascript"> var nodes = document.getElementsByTagName('li'); for(i = 0;i<nodes.length;i+=1) { nodes[i].onclick = function() { console.log(i+1); //不使用閉包的話,值每次都是4 }(4); }</script>JavaScript 代碼中的 "use strict"; 是什么意思?使用它的區別是什么?use strict是一種ECMAscript 5 添加的(嚴格)運行模式,這種模式使得 Javascript 在更嚴格的條件下運行,使JS編碼更加規范化的模式,消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為。默認支持的糟糕特性都會被禁用,比如不能用with,也不能在意外的情況下給全局變量賦值;全局變量的顯示聲明,函數必須聲明在頂層,不允許在非函數代碼塊內聲明函數,arguments.callee也不允許使用;消除代碼運行的一些不安全之處,保證代碼運行的安全,限制函數中的arguments修改,嚴格模式下的eval函數的行為和非嚴格模式的也不相同;提高編譯器效率,增加運行速度;為未來新版本的Javascript標準化做鋪墊。new 操作符具體干了什么呢?(1)創建一個空對象,并且 this 變量引用該對象,同時還繼承了該函數的原型。(2)屬性和方法被加入到 this 引用的對象中。(3)新創建的對象由 this 所引用,并且最后隱式的返回 this 。//var obj = {};obj.__proto__ = Base.prototype;Base.call(obj);JavaScript 中,有一個函數,執行對象查找時,永遠不會去查找原型,這個函數是哪個?hasOwnProperty//JavaScript 中 hasOwnProperty 函數方法是返回一個布爾值,指出一個對象是否具有指定名稱的屬性。此方法無法檢查該對象的原型鏈中是否具有該屬性;該屬性必須是對象本身的一個成員。//使用方法:object.hasOwnProperty(proName)其中參數object是必選項,一個對象的實例。proName是必選項,一個屬性名稱的字符串值。//如果 object 具有指定名稱的屬性,那么JavaScript中hasOwnProperty函數方法返回 true,反之則返回 false。你對 JSON 了解嗎?JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。它是基于JavaScript的一個子集。數據格式簡單,易于讀寫,占用帶寬小。如:{"age":"12", "name":"back"}Ajax 是什么?如何創建一個 Ajax ?ajax的全稱:Asynchronous Javascript And xml,異步傳輸+js+xml。所謂異步,在這里簡單地解釋就是:向服務器發送請求的時候,我們不必等待結果,而是可以同時做其他的事情,等到有了結果它自己會根據設定進行后續操作,與此同時,頁面是不會發生整頁刷新的,提高了用戶體驗。//(1)創建xmlhttpRequest對象,也就是創建一個異步調用對象(2)創建一個新的HTTP請求,并指定該HTTP請求的方法、URL及驗證信息(3)設置響應HTTP請求狀態變化的函數(4)發送HTTP請求(5)獲取異步調用返回的數據(6)使用JavaScript和DOM實現局部刷新同步和異步的區別?同步的概念應該是來自于操作系統中關于同步的概念:不同進程為協同完成某項工作而在先后次序上調整(通過阻塞,喚醒等方式)。同步強調的是順序性,誰先誰后;異步則不存在這種順序性。//同步:瀏覽器訪問服務器請求,用戶看得到頁面刷新,重新發請求,等請求完,頁面刷新,新內容出現,用戶看到新內容,進行下一步操作。//異步:瀏覽器訪問服務器請求,用戶正常操作,瀏覽器后端進行請求。等請求完,頁面不刷新,新內容也會出現,用戶看到新內容。如何解決跨域問題?jsonp、iframe、window.name、window.postMessage、服務器上設置代理頁面談一談你對 ECMAScript6 的了解?ECMAScript 6 是JavaScript語言的下一代標準,已經在2015年6月正式發布了。它的目標,是使得JavaScript語言可以用來編寫復雜的大型應用程序,成為企業級開發語言。標準的制定者有計劃,以后每年發布一次標準,使用年份作為標準的版本。因為當前版本的ES6是在2015年發布的,所以又稱ECMAScript 2015。也就是說,ES6就是ES2015ECMAScript 6 怎么寫 class ,為何會出現 class?ES6的class可以看作只是一個語法糖,它的絕大部分功能,ES5都可以做到,新的class寫法只是讓對象原型的寫法更加清晰、更像面向對象編程的語法而已。//定義類class Point { constructor(x,y) { //構造方法 this.x = x; //this關鍵字代表實例對象 this.y = y; } toString() { return '(' + this.x + ',' + this.y + ')'; }}異步加載 JS 的方式有哪些?document.write 只能重繪整個頁面innerHTML 可以重繪頁面的一部分DOM 操作——怎樣添加、移除、移動、復制、創建和查找節點?(1)創建新節點 createDocumentFragment() //創建一個DOM片段 createElement() //創建一個具體的元素 createTextNode() //創建一個文本節點(2)添加、移除、替換、插入 appendChild() removeChild() replaceChild() insertBefore() //在已有的子節點前插入一個新的子節點(3)查找 getElementsByTagName() //通過標簽名稱 getElementsByName() //通過元素的Name屬性的值(IE容錯能力較強,會得到一個數組,其中包括id等于name值的) getElementById() //通過元素Id,唯一性如何編寫高性能 JavaScript ?詳細文章:淺談編寫高性能的Javascript代碼哪些操作會造成內存泄漏?內存泄漏是指任何對象在您不再擁有或需要它之后任然存在。垃圾回收器定期掃描對象,并計算引用了每個對象的其他對象的數量,如果一個對象的引用數量為0(沒有其他對象引用過該對象),或對該對象的惟一引用是循環的,那么該對象的內存即可回收。//setTimeout 的第一個參數使用字符串而非函數的話,會引發內存泄漏。閉包、控制臺日志、循環(在兩個對象彼此引用且彼此保留時,就會產生一個循環)jQuery 中如何將數組轉化為 json 字符串,然后再轉化回來?jQuery 中沒有提供這個功能,所以需要先編寫兩個 jQuery 的擴展:$.fn.stringifyArray = function(array) { return JSON.stringify(array)}$.fn.parseArray = function(array) { return JSON.parse(array)}//然后調用:$("").stringifyArray(array)jQuery.extend 與 jQuery.fn.extend 有何區別?jQuery.extend(object); //為jQuery類添加類方法,可以理解為添加靜態方法jQuery.extend({ min: function(a, b) { return a < b ? a : b; }, max: function(a, b) { return a > b ? a : b; }});jQuery.min(2,3); // 2 jQuery.max(4,5); // 5jQuery.extend( target, object1, [objectN])用一個或多個其他對象來擴展一個對象,返回被擴展的對象jQuery.fn.extend(object); //對jQuery.prototype進行的擴展,就是為jQuery類添加“成員函數”。jQuery類的實例可以使用這個“成員函數”。比如我們要開發一個插件,做一個特殊的編輯框,當它被點擊時,便alert 當前編輯框里的內容??梢赃@么做:$.fn.extend({ alertWhileClick:function() { $(this).click(function(){ alert($(this).val()); }); } }); $("#input1").alertWhileClick(); // 頁面上為$("#input1")為一個jQuery實例,當它調用成員方法 alertWhileClick后,便實現了擴展,每次被點擊時它會先彈出目前編輯里的內容。是否了解針對 jQuery 性能的優化方法?基于Class的選擇性的性能相對于Id選擇器開銷很大,因為需遍歷所有DOM元素。//頻繁操作的DOM,先緩存起來再操作。用Jquery的鏈式調用更好。比如:var str=$("a").attr("href");//for (var i = size; i < arr.length; i++) {}for 循環每一次循環都查找了數組 (arr) 的.length 屬性,在開始循環的時候設置一個變量來存儲這個數字,可以讓循環跑得更快:for (var i = size, length = arr.length; i < length; i++) {}jQuery 與 jQuery UI 有何區別?jQuery是一個js庫,主要提供的功能是選擇器,屬性修改和事件綁定等等。jQuery UI則是在jQuery的基礎上,利用jQuery的擴展性,設計的插件。提供了一些常用的界面元素,諸如對話框、拖動行為、改變大小行為等等如何判斷當前腳本運行在瀏覽器還是 node 環境中?(阿里)通過判斷 Global 對象是否為 window ,如果不為 window ,當前腳本沒有運行在瀏覽器中怎樣用js實現千位分隔符?正則 + replacefunction commafy(num) { num = num + ''; var reg = /(-?d+)(d{3})/; if (reg.test(num)) { num = num.replace(reg, '$1,$2'); } return num;}檢測瀏覽器版本有哪些方式?功能檢測、userAgent 特征檢測比如:navigator.userAgent//"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36"Canvas和SVG的比較;| Canvas | SVG || --------------------------------- | -----------------------------------|| 位圖技術,可以保存為.png | 矢量圖技術,不能保存為位圖| --------------------------------- | -----------------------------------|| 善于表現顏色和線條細節 | 可以縮放,不善于表現細節| --------------------------------- | -----------------------------------|| 網頁游戲,統計圖 | 圖標,統計圖,地圖 | | --------------------------------- | -----------------------------------||一個標簽(canvas)+一個對象(getcontext), | | 所有圖形圖像都靠ctx繪制 | 幾十個標簽---每個圖形對應一個標簽 || --------------------------------- | -----------------------------------|| 不能被搜索引擎爬蟲所訪問 可以| --------------------------------- | -----------------------------------|| 只能為整個 Canvas綁定監聽函數 | 每個圖形(標簽)可以綁定事件監聽函數 || --------------------------------- | -----------------------------------|

談談你對 JavaScript 中的模塊規范 CommonJS、AMD、CMD 的了解?

//個人拙見| CommonJS | AMD | CMD ||----------|---------|---------|| Node.js |RequireJS| SeaJS |

詳細文章:淺析JS中的模塊規范(CommonJS,AMD,CMD)、關于 CommonJS AMD CMD UMD

前端 MVC、MVVM1、MVC

MVC

模型(Model):數據保存視圖(View):用戶界面控制器(Controller):業務邏輯(1)View 傳送指令到 Controller(2)Controller 完成業務邏輯后,要求 Model 改變狀態(3)Model 將新的數據發送到 View ,用戶得到反饋所有通信都是單向的。

2、MVVM

MVVM

模型(Model)視圖(View)視圖模型(ViewModel)(1)各部分間都是雙向通信(2)View 與 Model 不發生聯系,都通過 ViewModel 傳遞(3)View 非常薄,不部署任何業務邏輯,稱為“被動視圖”(Passive View),即沒有任何主動性;而 ViewModel 非常厚,所有邏輯都部署在那里。采用雙向綁定(data-binding):View 的變動,自動反映在 ViewModel ,反之亦然。HTTP協議的狀態消息都有哪些?(如200、302對應的描述)國內外的JS牛人都知道哪些?協議是指計算機通信網絡中兩臺計算機之間進行通信所必須共同遵守的規定或規則,超文本傳輸協議(HTTP)是一種通信協議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器,? “100″ : Continue(繼續) 初始的請求已經接受,客戶應當繼續發送請求的其余部分。(HTTP 1.1新)? “101″ : Switching Protocols(切換協議) 請求者已要求服務器切換協議,服務器已確認并準備進行切換。(HTTP 1.1新)? “200″ : OK(成功) 一切正常,對GET和POST請求的應答文檔跟在后面。? “201″ : Created(已創建)服務器已經創建了文檔,Location頭給出了它的URL。? “202″ : Accepted(已接受)服務器已接受了請求,但尚未對其進行處理。? “203″ : Non-Authoritative Information(非授權信息) 文檔已經正常地返回,但一些應答頭可能不正確,可能來自另一來源 。(HTTP 1.1新)。? “204″ : No Content(無內容)未返回任何內容,瀏覽器應該繼續顯示原來的文檔。? “205″ : Reset Content(重置內容)沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容(HTTP 1.1新)。? “206″ : Partial Content(部分內容)服務器成功處理了部分 GET 請求。(HTTP 1.1新)? “300″ : Multiple Choices(多種選擇)客戶請求的文檔可以在多個位置找到,這些位置已經在返回的文檔內列出。如果服務器要提出優先選擇,則應該在Location應答頭指明。? “301″ : Moved Permanently(永久移動)請求的網頁已被永久移動到新位置。服務器返回此響應(作為對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。? “302″ : Found(臨時移動)類似于301,但新的URL應該被視為臨時性的替代,而不是永久性的。注意,在HTTP1.0中對應的狀態信息是“Moved Temporatily”,出現該狀態代碼時,瀏覽器能夠自動訪問新的URL,因此它是一個很有用的狀態代碼。注意這個狀態代碼有時候可以和301替換使用。例如,如果瀏覽器錯誤地請求http://host/~user(缺少了后面的斜杠),有的服務器返回301,有的則返回302。嚴格地說,我們只能假定只有當原來的請求是GET時瀏覽器才會自動重定向。請參見307。? “303″ : See Other(查看其他位置)類似于301/302,不同之處在于,如果原來的請求是POST,Location頭指定的重定向目標文檔應該通過GET提?。℉TTP 1.1新)。? “304″ : Not Modified(未修改)自從上次請求后,請求的網頁未被修改過。原來緩沖的文檔還可以繼續使用,不會返回網頁內容。? “305″ : Use Proxy(使用代理)只能使用代理訪問請求的網頁。如果服務器返回此響應,那么,服務器還會指明請求者應當使用的代理。(HTTP 1.1新)? “307″ : Temporary Redirect(臨時重定向)和 302(Found)相同。許多瀏覽器會錯誤地響應302應答進行重定向,即使原來的請求是POST,即使它實際上只能在POST請求的應答是303時才能重定向。由于這個原因,HTTP 1.1新增了307,以便更加清除地區分幾個狀態代碼:當出現303應答時,瀏覽器可以跟隨重定向的GET和POST請求;如果是307應答,則瀏覽器只能跟隨對GET請求的重定向。(HTTP 1.1新)? “400″ : Bad Request(錯誤請求)請求出現語法錯誤。? “401″ : Unauthorized(未授權)客戶試圖未經授權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏覽器據此顯示用戶名字/密碼對話框,然后在填寫合適的Authorization頭后再次發出請求。? “403″ : Forbidden(已禁止) 資源不可用。服務器理解客戶的請求,但拒絕處理它。通常由于服務器上文件或目錄的權限設置導致。? “404″ : Not Found(未找到)無法找到指定位置的資源。? “405″ : Method Not Allowed(方法禁用)請求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)禁用。(HTTP 1.1新)? “406″ : Not Acceptable(不接受)指定的資源已經找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容(HTTP 1.1新)。? “407″ : Proxy Authentication Required(需要代理授權)類似于401,表示客戶必須先經過代理服務器的授權。(HTTP 1.1新)? “408″ : Request Time-out(請求超時)服務器等候請求時超時。(HTTP 1.1新)? “409″ : Conflict(沖突)通常和PUT請求有關。由于請求和資源的當前狀態相沖突,因此請求不能成功。(HTTP 1.1新)? “410″ : Gone(已刪除)如果請求的資源已被永久刪除,那么,服務器會返回此響應。該代碼與 404(未找到)代碼類似,但在資源以前有但現在已經不復存在的情況下,有時會替代 404 代碼出現。如果資源已被永久刪除,那么,您應當使用 301 代碼指定該資源的新位置。(HTTP 1.1新)? “411″ : Length Required(需要有效長度)不會接受包含無效內容長度標頭字段的請求。(HTTP 1.1新)? “412″ : Precondition Failed(未滿足前提條件)服務器未滿足請求者在請求中設置的其中一個前提條件。(HTTP 1.1新)? “413″ : Request Entity Too Large(請求實體過大)請求實體過大,已超出服務器的處理能力。如果服務器認為自己能夠稍后再處理該請求,則應該提供一個Retry-After頭。(HTTP 1.1新)? “414″ : Request-URI Too Large(請求的 URI 過長)請求的 URI(通常為網址)過長,服務器無法進行處理。? “415″ : Unsupported Media Type(不支持的媒體類型)請求的格式不受請求頁面的支持。? “416″ : Requested range not satisfiable(請求范圍不符合要求)服務器不能滿足客戶在請求中指定的Range頭。(HTTP 1.1新)? “417″ : Expectation Failed(未滿足期望值)服務器未滿足”期望”請求標頭字段的要求。? “500″ : Internal Server Error(服務器內部錯誤)服務器遇到錯誤,無法完成請求。? “501″ : Not Implemented(尚未實施) 服務器不具備完成請求的功能。例如,當服務器無法識別請求方法時,服務器可能會返回此代碼。? “502″ : Bad Gateway(錯誤網關)服務器作為網關或者代理時,為了完成請求訪問下一個服務器,但該服務器返回了非法的應答。? “503″ : Service Unavailable(服務不可用)服務器由于維護或者負載過重未能應答。通常,這只是一種暫時的狀態。? “504″ : Gateway Time-out(網關超時) 由作為代理或網關的服務器使用,表示不能及時地從遠程服務器獲得應答。(HTTP 1.1新)? “505″ : HTTP Version not supported(HTTP 版本不受支持)不支持請求中所使用的 HTTP 協議版本。國內的比較牛的人:淘寶網UED官方博客。靈玉,大成小胖,承玉,拔赤
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女免费看| 国产精品免费福利| 欧美激情中文字幕乱码免费| 日韩国产高清污视频在线观看| 国产区精品视频| 久久精品最新地址| 91禁国产网站| 高清视频欧美一级| 九九热这里只有精品免费看| 国产精品精品一区二区三区午夜版| 不卡伊人av在线播放| 亚洲片av在线| 日韩成人激情在线| 亚洲欧美日韩精品久久奇米色影视| 欧美另类69精品久久久久9999| 久久男人资源视频| 国产中文字幕亚洲| 欧美极品美女视频网站在线观看免费| 国内免费久久久久久久久久久| 日韩精品一区二区视频| 色婷婷久久一区二区| 亚洲人av在线影院| 欧美激情女人20p| 7777免费精品视频| 91最新国产视频| 不卡av日日日| 中文欧美在线视频| 91精品国产高清久久久久久久久| 亚洲电影中文字幕| 欧美日韩亚洲视频| 97碰在线观看| 亚洲精品白浆高清久久久久久| 欧美极品美女视频网站在线观看免费| 久久精品国产综合| 日韩精品在线第一页| 黑人狂躁日本妞一区二区三区| 中文字幕视频在线免费欧美日韩综合在线看| 国产欧美在线视频| 午夜精品三级视频福利| 国产亚洲精品91在线| 最近2019年日本中文免费字幕| 亚洲第一福利在线观看| 日韩在线视频国产| 国产精品亚洲美女av网站| 色中色综合影院手机版在线观看| 国产亚洲欧美一区| 国产欧美日韩精品在线观看| 欧美激情一区二区三区成人| 久久99久久99精品中文字幕| 欧美小视频在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 久久久久久久久久久国产| 久久香蕉国产线看观看网| 日韩精品免费在线观看| 亚洲欧美日韩高清| 欧美性精品220| 久久精品人人做人人爽| 丁香五六月婷婷久久激情| 欧美激情综合色综合啪啪五月| 欧美日韩国产页| 最新91在线视频| 日韩最新在线视频| 亚洲国内高清视频| 中文字幕精品在线| 精品久久中文字幕| 日韩av在线影院| 久久精品亚洲94久久精品| 日韩中文字幕不卡视频| 国产精品久久久久久久午夜| 亚洲伊人久久大香线蕉av| 精品国产美女在线| 欧美自拍视频在线观看| 国产热re99久久6国产精品| 亚洲成人网av| 亚洲欧美激情精品一区二区| 欧美成人在线网站| 91亚洲精品在线观看| 久久综合色88| 亚洲香蕉伊综合在人在线视看| 日韩精品小视频| 国产成人精品电影久久久| 亚洲毛片在线免费观看| 欧美激情欧美激情在线五月| 国产精品av网站| 亚洲视频在线观看| 青青久久av北条麻妃黑人| 少妇av一区二区三区| 国产精品美女视频网站| 亚洲国产成人久久综合一区| 国产婷婷97碰碰久久人人蜜臀| 欧美日韩美女在线| 免费成人高清视频| 亚洲电影天堂av| 欧美日韩午夜激情| www.美女亚洲精品| 97精品视频在线播放| 日本最新高清不卡中文字幕| 欧美三级欧美成人高清www| 欧美色视频日本版| 日本中文字幕久久看| 国产精品高潮呻吟久久av野狼| 性欧美xxxx视频在线观看| 成人欧美一区二区三区在线| 国产精品久久久久免费a∨| 国产美女搞久久| 日韩精品中文字| 久久久久久一区二区三区| 久久久久久久一区二区三区| 岛国精品视频在线播放| 日韩视频免费大全中文字幕| 亚洲美女精品久久| 国产精品高潮呻吟久久av黑人| 国产日韩欧美日韩大片| 日韩电影免费在线观看中文字幕| 日韩电影在线观看中文字幕| 久久久久久av| 97在线精品国自产拍中文| 久热精品视频在线免费观看| 国产成人福利夜色影视| 欧美黄色小视频| 在线视频精品一| 欧美激情亚洲视频| 国产精品对白刺激| 久久97精品久久久久久久不卡| 欧美激情视频在线观看| 欧美丰满老妇厨房牲生活| 亚洲缚视频在线观看| 97超视频免费观看| 九九九久久国产免费| 久久国内精品一国内精品| 日韩美女在线看| 日韩精品在线观看一区二区| 国产精品吊钟奶在线| 欧美福利视频在线观看| 日韩欧美高清在线视频| 久久男人的天堂| 亚洲激情久久久| 欧美国产中文字幕| 富二代精品短视频| 亚洲日韩欧美视频一区| 中文字幕视频一区二区在线有码| 欧美在线影院在线视频| 国产女人精品视频| 日韩免费高清在线观看| 亚洲风情亚aⅴ在线发布| 欧美亚洲国产视频小说| 91网站免费看| 免费99精品国产自在在线| 丰满岳妇乱一区二区三区| 日韩美女激情视频| 国产精品久久久久国产a级| 亚洲mm色国产网站| 91精品国产高清自在线看超| 一区二区三区四区精品| 国产精品视频999| 国产亚洲精品成人av久久ww| 97国产精品视频人人做人人爱| 2019日本中文字幕| 欧美成人国产va精品日本一级| 狠狠久久亚洲欧美专区| 国产伦精品一区二区三区精品视频| 成人欧美一区二区三区在线湿哒哒| 国产欧美久久久久久| 一区二区三区无码高清视频|