1.http包含什么信息
本題答案參考caibaojian.com/http.html文章
http協(xié)議包含:通用頭域、請求消息、響應(yīng)消息和主體信息。
HTTP是一個(gè)客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP)
通用頭域
通用頭域包含請求和響應(yīng)消息都支持的頭域,通用頭域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。對通用頭域的擴(kuò)展要求通訊雙方都支持此擴(kuò)展,如果存在不支持的通用頭域,一般將會作為實(shí)體頭域處理。
請求消息
請求消息的第一行為下面的格式:
MethodSPRequest-URISPHTTP-VersionCRLFMethod表示對于Request-URI完成的方法,這個(gè)字段是大小寫敏感的,包括OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE。
Host頭域
Host頭域指定請求資源的Intenet主機(jī)和端口號,必須表示請求url的原始服務(wù)器或網(wǎng)關(guān)的位置。HTTP/1.1請求必須包含主機(jī)頭域,否則系統(tǒng)會以400狀態(tài)碼返回。
響應(yīng)消息
響應(yīng)消息的第一行為下面的格式:
HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF
HTTP-Version表示支持的HTTP版本,例如為HTTP/1.1。Status- Code是一個(gè)三個(gè)數(shù)字的結(jié)果代碼。Reason-Phrase給Status-Code提供一個(gè)簡單的文本描述。Status-Code主要用于機(jī)器自動識別,Reason-Phrase主要用于幫助用戶理解。Status-Code的第一個(gè)數(shù)字定義響應(yīng)的類別,后兩個(gè)數(shù)字沒有分類的作用。第一個(gè)數(shù)字可能取5個(gè)不同的值:
1xx:信息響應(yīng)類,表示接收到請求并且繼續(xù)處理
2xx:處理成功響應(yīng)類,表示動作被成功接收、理解和接受
3xx:重定向響應(yīng)類,為了完成指定的動作,必須接受進(jìn)一步處理
4xx:客戶端錯(cuò)誤,客戶請求包含語法錯(cuò)誤或者是不能正確執(zhí)行
5xx:服務(wù)端錯(cuò)誤,服務(wù)器不能正確執(zhí)行一個(gè)正確的請求
響應(yīng)頭域允許服務(wù)器傳遞不能放在狀態(tài)行的附加信息,這些域主要描述服務(wù)器的信息和 Request-URI進(jìn)一步的信息。響應(yīng)頭域包含Age、Location、Proxy-Authenticate、Public、Retry- After、Server、Vary、Warning、WWW-Authenticate。對響應(yīng)頭域的擴(kuò)展要求通訊雙方都支持,如果存在不支持的響應(yīng)頭域,一般將會作為實(shí)體頭域處理。
實(shí)體消息
請求消息和響應(yīng)消息都可以包含實(shí)體信息,實(shí)體信息一般由實(shí)體頭域和實(shí)體組成。實(shí)體頭域包含關(guān)于實(shí)體的原信息,實(shí)體頭包括Allow、Content- Base、Content-Encoding、Content-Language、 Content-Length、Content-Location、Content-MD5、Content-Range、Content-Type、 Etag、Expires、Last-Modified、extension-header。extension-header允許客戶端定義新的實(shí)體頭,但是這些域可能無法未接受方識別。實(shí)體可以是一個(gè)經(jīng)過編碼的字節(jié)流,它的編碼方式由Content-Encoding或Content-Type定義,它的長度由Content-Length或Content-Range定義。
2.<div id="div1"> <div id="div2"></div> </div>以上代碼在不知道div2大小的情況下實(shí)現(xiàn)div2居中。
本答案參考知乎答案www.zhihu.com/question/19652330/answer/24592006
<div class="wrap"> <div class="inner"></div> </div>
.wrap 使用 float 是為了讓 .wrap 的寬度等于 .inner 的寬度
讓 .wrap 的左邊在父層的中線上, 讓.inner 的左邊相對 .wrap 向左移動一半, 這樣就可以實(shí)現(xiàn) .inner 在.wrap 的父層的中間。
3.js實(shí)現(xiàn)單例模式
單例模式
單例模式的實(shí)現(xiàn)從專業(yè)化來說,單例模式是一種對象創(chuàng)建模式,它用于產(chǎn)生一個(gè)對象的具體實(shí)例,它可以確保系統(tǒng)中一個(gè)類只產(chǎn)生一個(gè)實(shí)例。
4.瀏覽器渲染頁面過程
此題答案來自www.cnblogs.com/yuezk/archive/2013/01/11/2855698.html
頁面的渲染有以下特點(diǎn):
1.單線程事件輪詢
2.定義明確、連續(xù)、操作有序(HTML5)
3.分詞和構(gòu)建DOM樹
4.請求資源并預(yù)加載
5.構(gòu)建渲染樹并繪制頁面
具體來說:
當(dāng)我們從網(wǎng)絡(luò)上得到HTML的相應(yīng)字節(jié)時(shí),DOM樹就開始構(gòu)建了。由瀏覽器更新UI的線程負(fù)責(zé)。當(dāng)遇到以下情況時(shí),DOM樹的構(gòu)建會被阻塞:
1.HTML的響應(yīng)流被阻塞在了網(wǎng)絡(luò)中
2.有未加載完的腳本
3.遇到了script節(jié)點(diǎn),但是此時(shí)還有未加載完的樣式文件
渲染樹構(gòu)建自DOM樹,并且會被樣式文件阻塞。
由于是基于單線程的事件輪詢,即使沒有腳本和樣式的阻塞,當(dāng)這些腳本或樣式被解析、執(zhí)行并且應(yīng)用的時(shí)候,也會阻塞頁面的渲染。
一些不會阻塞頁面渲染的情況:
1.定義的defer屬性和async屬性的
2.沒有匹配的媒體類型的樣式文件
3.沒有通過解析器插入script節(jié)點(diǎn)或樣式節(jié)點(diǎn)
為了減緩渲染被阻塞的情況,現(xiàn)代的瀏覽器都使用了猜測預(yù)加載(speculative loading)。
在上面這種情況下,腳本和樣式文件會嚴(yán)重阻塞頁面的渲染。猜測預(yù)加載的目的就是減少這種阻塞時(shí)間。當(dāng)渲染被阻塞的時(shí)候,它會做以下一些事:
輕量級的HTML(或CSS)掃描器(scanner)繼續(xù)在文檔中掃描
查找那些將來可能能夠用到的資源文件的url
在渲染器使用它們之前將其下載下來
但是,猜測預(yù)加載不能發(fā)現(xiàn)通過javascript腳本來加載的資源文件(如,document.write())。
5.將100萬個(gè)無序數(shù)進(jìn)行排序并分成兩組其中第一組中任意一個(gè)數(shù)字都比第二組中任意一個(gè)數(shù)小
經(jīng)過和曹藝討論這道題應(yīng)該使用快速排序算法
6.用js將local.search轉(zhuǎn)換成map
暫時(shí)還不會........