1.http常見的狀態(tài)碼有那些?分別代表是什么意思幕垦?
200 - 請(qǐng)求成功
301 - 資源(網(wǎng)頁(yè)等)被永久轉(zhuǎn)移到其它URL
404 - 請(qǐng)求的資源(網(wǎng)頁(yè)等)不存在
500 - 內(nèi)部服務(wù)器錯(cuò)誤
2.一個(gè)頁(yè)面從輸入 URL 到頁(yè)面加載顯示完成傅联,這個(gè)過(guò)程中都發(fā)生了什么?
分為4個(gè)步驟:
(1)當(dāng)發(fā)送一個(gè) URL 請(qǐng)求時(shí)蒸走,不管這個(gè) URL 是 Web 頁(yè)面的 URL 還是 Web 頁(yè)面上每個(gè)資源的 URL貌嫡,瀏覽器都會(huì)開啟一個(gè)線程來(lái)處理這個(gè)請(qǐng)求,同時(shí)在遠(yuǎn)程 DNS 服務(wù)器上啟動(dòng)一個(gè) DNS 查詢岛抄。這能使瀏覽器獲得請(qǐng)求對(duì)應(yīng)的 IP 地址。
(2) 瀏覽器與遠(yuǎn)程 Web 服務(wù)器通過(guò) TCP 三次握手協(xié)商來(lái)建立一個(gè) TCP/IP 連接掸掸。該握手包括一個(gè)同步報(bào)文蹭秋,一個(gè)同步-應(yīng)答報(bào)文和一個(gè)應(yīng)答報(bào)文,這三個(gè)報(bào)文在 瀏覽器和服務(wù)器之間傳遞仁讨。該握手首先由客戶端嘗試建立起通信,而后服務(wù)器應(yīng)答并接受客戶端的請(qǐng)求洞豁,最后由客戶端發(fā)出該請(qǐng)求已經(jīng)被接受的報(bào)文。
(3)一旦 TCP/IP 連接建立刁卜,瀏覽器會(huì)通過(guò)該連接向遠(yuǎn)程服務(wù)器發(fā)送 HTTP 的 GET 請(qǐng)求礁哄。遠(yuǎn)程服務(wù)器找到資源并使用 HTTP 響應(yīng)返回該資源,值為 200 的 HTTP 響應(yīng)狀態(tài)表示一個(gè)正確的響應(yīng)桐绒。
(4)此時(shí)之拨,Web 服務(wù)器提供資源服務(wù)咧叭,客戶端開始下載資源。
3.ajax請(qǐng)求的時(shí)候get 和post方式的區(qū)別
get一般用來(lái)進(jìn)行查詢操作菲茬,url地址有長(zhǎng)度限制,請(qǐng)求的參數(shù)都暴露在url地址當(dāng)中睬魂,如果傳遞中文參數(shù)镀赌,需要自己進(jìn)行編碼操作,安全性較低商佛。
post請(qǐng)求方式主要用來(lái)提交數(shù)據(jù),沒(méi)有數(shù)據(jù)長(zhǎng)度的限制良姆,提交的數(shù)據(jù)內(nèi)容存在于http請(qǐng)求體中,數(shù)據(jù)不會(huì)暴漏在url地址中税课。
4.ajax請(qǐng)求時(shí)豹缀,如何解釋json數(shù)據(jù)
使用eval() 或者JSON.parse() 鑒于安全性考慮,推薦使用JSON.parse()更靠譜邢笙,對(duì)數(shù)據(jù)的安全性更好。
5.為什么利用多個(gè)域名來(lái)存儲(chǔ)網(wǎng)站資源會(huì)更有效叮雳?
確保用戶在不同地區(qū)能用最快的速度打開網(wǎng)站,其中某個(gè)域名崩潰用戶也能通過(guò)其他郁悶訪問(wèn)網(wǎng)站帘不,并且不同的資源放到不同的服務(wù)器上有利于減輕單臺(tái)服務(wù)器的壓力杨箭。
6.請(qǐng)說(shuō)出三種減低頁(yè)面加載時(shí)間的方法
(1)壓縮css、js文件
(2)合并js、css文件辽狈,減少http請(qǐng)求
(3)外部js呛牲、css文件放在最底下
(4)減少dom操作,盡可能用變量替代不必要的dom操作
7.HTTP狀態(tài)碼都有那些娘扩。
200 OK //客戶端請(qǐng)求成功
400 Bad Request //客戶端請(qǐng)求有語(yǔ)法錯(cuò)誤,不能被服務(wù)器所理解
403 Forbidden //服務(wù)器收到請(qǐng)求涮阔,但是拒絕提供服務(wù)
404 Not Found //請(qǐng)求資源不存在,輸入了錯(cuò)誤的URL
500 Internal Server Error //服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤
503 Server Unavailable //服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求澎语,一段時(shí)間后可能恢復(fù)正常
8.JQuery一個(gè)對(duì)象可以同時(shí)綁定多個(gè)事件验懊,這是如何實(shí)現(xiàn)的尸变?
jQuery可以給一個(gè)對(duì)象同時(shí)綁定多個(gè)事件,低層實(shí)現(xiàn)方式是使用addEventListner或attachEvent兼容不同的瀏覽器實(shí)現(xiàn)事件的綁定召烂,這樣可以給同一個(gè)對(duì)象注冊(cè)多個(gè)事件。
9.知道什么是webkit么? 知道怎么用瀏覽器的各種工具來(lái)調(diào)試和debug代碼么?
Webkit是瀏覽器引擎怕篷,包括html渲染和js解析功能酗昼,手機(jī)瀏覽器的主流內(nèi)核,與之相對(duì)應(yīng)的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也稱MSHTML麻削,IE 使用)。
對(duì)于瀏覽器的調(diào)試工具要熟練使用呛哟,主要是頁(yè)面結(jié)構(gòu)分析,后臺(tái)請(qǐng)求信息查看榛鼎,js調(diào)試工具使用,熟練使用這些工具可以快速提高解決問(wèn)題的效率