1.http包含什么信息
本題答案參考caibaojian.com/http.html文章
http協(xié)議包含:通用頭域铡恕、請(qǐng)求消息、響應(yīng)消息和主體信息倚舀。
HTTP是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP)
通用頭域
通用頭域包含請(qǐng)求和響應(yīng)消息都支持的頭域枪向,通用頭域包含Cache-Control、Connection俗批、Date俗或、Pragma、Transfer-Encoding岁忘、Upgrade辛慰、Via。對(duì)通用頭域的擴(kuò)展要求通訊雙方都支持此擴(kuò)展干像,如果存在不支持的通用頭域帅腌,一般將會(huì)作為實(shí)體頭域處理。
請(qǐng)求消息
請(qǐng)求消息的第一行為下面的格式:
MethodSPRequest-URISPHTTP-VersionCRLFMethod表示對(duì)于Request-URI完成的方法蝠筑,這個(gè)字段是大小寫敏感的狞膘,包括OPTIONS、GET什乙、HEAD挽封、POST、PUT臣镣、DELETE辅愿、TRACE。
Host頭域
Host頭域指定請(qǐng)求資源的Intenet主機(jī)和端口號(hào)忆某,必須表示請(qǐng)求url的原始服務(wù)器或網(wǎng)關(guān)的位置点待。HTTP/1.1請(qǐng)求必須包含主機(jī)頭域,否則系統(tǒng)會(huì)以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è)簡(jiǎn)單的文本描述苗踪。Status-Code主要用于機(jī)器自動(dòng)識(shí)別,Reason-Phrase主要用于幫助用戶理解削锰。Status-Code的第一個(gè)數(shù)字定義響應(yīng)的類別通铲,后兩個(gè)數(shù)字沒(méi)有分類的作用。第一個(gè)數(shù)字可能取5個(gè)不同的值:
1xx:信息響應(yīng)類器贩,表示接收到請(qǐng)求并且繼續(xù)處理
2xx:處理成功響應(yīng)類颅夺,表示動(dòng)作被成功接收朋截、理解和接受
3xx:重定向響應(yīng)類,為了完成指定的動(dòng)作吧黄,必須接受進(jìn)一步處理
4xx:客戶端錯(cuò)誤部服,客戶請(qǐng)求包含語(yǔ)法錯(cuò)誤或者是不能正確執(zhí)行
5xx:服務(wù)端錯(cuò)誤,服務(wù)器不能正確執(zhí)行一個(gè)正確的請(qǐng)求
響應(yīng)頭域允許服務(wù)器傳遞不能放在狀態(tài)行的附加信息拗慨,這些域主要描述服務(wù)器的信息和 Request-URI進(jìn)一步的信息饲宿。響應(yīng)頭域包含Age、Location胆描、Proxy-Authenticate瘫想、Public、Retry- After昌讲、Server国夜、Vary、Warning短绸、WWW-Authenticate车吹。對(duì)響應(yīng)頭域的擴(kuò)展要求通訊雙方都支持,如果存在不支持的響應(yīng)頭域醋闭,一般將會(huì)作為實(shí)體頭域處理窄驹。
實(shí)體消息
請(qǐng)求消息和響應(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í)體頭衅澈,但是這些域可能無(wú)法未接受方識(shí)別键菱。實(shí)體可以是一個(gè)經(jīng)過(guò)編碼的字節(jié)流谬墙,它的編碼方式由Content-Encoding或Content-Type定義今布,它的長(zhǎng)度由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 的左邊相對(duì) .wrap 向左移動(dòng)一半侵蒙, 這樣就可以實(shí)現(xiàn) .inner 在.wrap 的父層的中間。
3.js實(shí)現(xiàn)單例模式
單例模式
單例模式的實(shí)現(xiàn)從專業(yè)化來(lái)說(shuō)傅蹂,單例模式是一種對(duì)象創(chuàng)建模式纷闺,它用于產(chǎn)生一個(gè)對(duì)象的具體實(shí)例,它可以確保系統(tǒng)中一個(gè)類只產(chǎn)生一個(gè)實(shí)例份蝴。
4.瀏覽器渲染頁(yè)面過(guò)程
此題答案來(lái)自www.cnblogs.com/yuezk/archive/2013/01/11/2855698.html
頁(yè)面的渲染有以下特點(diǎn):
1.單線程事件輪詢
2.定義明確犁功、連續(xù)、操作有序(HTML5)
3.分詞和構(gòu)建DOM樹(shù)
4.請(qǐng)求資源并預(yù)加載
5.構(gòu)建渲染樹(shù)并繪制頁(yè)面
具體來(lái)說(shuō):
當(dāng)我們從網(wǎng)絡(luò)上得到HTML的相應(yīng)字節(jié)時(shí)婚夫,DOM樹(shù)就開(kāi)始構(gòu)建了浸卦。由瀏覽器更新UI的線程負(fù)責(zé)。當(dāng)遇到以下情況時(shí)案糙,DOM樹(shù)的構(gòu)建會(huì)被阻塞:
1.HTML的響應(yīng)流被阻塞在了網(wǎng)絡(luò)中
2.有未加載完的腳本
3.遇到了script節(jié)點(diǎn)限嫌,但是此時(shí)還有未加載完的樣式文件
渲染樹(shù)構(gòu)建自DOM樹(shù),并且會(huì)被樣式文件阻塞时捌。
由于是基于單線程的事件輪詢怒医,即使沒(méi)有腳本和樣式的阻塞,當(dāng)這些腳本或樣式被解析奢讨、執(zhí)行并且應(yīng)用的時(shí)候稚叹,也會(huì)阻塞頁(yè)面的渲染。
一些不會(huì)阻塞頁(yè)面渲染的情況:
1.定義的defer屬性和async屬性的
2.沒(méi)有匹配的媒體類型的樣式文件
3.沒(méi)有通過(guò)解析器插入script節(jié)點(diǎn)或樣式節(jié)點(diǎn)
為了減緩渲染被阻塞的情況拿诸,現(xiàn)代的瀏覽器都使用了猜測(cè)預(yù)加載(speculative loading)入录。
在上面這種情況下,腳本和樣式文件會(huì)嚴(yán)重阻塞頁(yè)面的渲染佳镜。猜測(cè)預(yù)加載的目的就是減少這種阻塞時(shí)間僚稿。當(dāng)渲染被阻塞的時(shí)候,它會(huì)做以下一些事:
輕量級(jí)的HTML(或CSS)掃描器(scanner)繼續(xù)在文檔中掃描
查找那些將來(lái)可能能夠用到的資源文件的url
在渲染器使用它們之前將其下載下來(lái)
但是蟀伸,猜測(cè)預(yù)加載不能發(fā)現(xiàn)通過(guò)javascript腳本來(lái)加載的資源文件(如蚀同,document.write())。
5.將100萬(wàn)個(gè)無(wú)序數(shù)進(jìn)行排序并分成兩組其中第一組中任意一個(gè)數(shù)字都比第二組中任意一個(gè)數(shù)小
經(jīng)過(guò)和曹藝討論這道題應(yīng)該使用快速排序算法
6.用js將local.search轉(zhuǎn)換成map
暫時(shí)還不會(huì)........