http方面

1.http2.0的優(yōu)缺點(diǎn):

? ? 采用二進(jìn)制格式傳輸數(shù)據(jù)

? ? 對(duì)消息頭采用hpack進(jìn)行壓縮傳輸,能節(jié)省消息頭占用的網(wǎng)絡(luò)流量

? ? 異步連接采用多路復(fù)用

? ? server push,服務(wù)端能夠更快的把資源傳給客戶端

2.http報(bào)文的請(qǐng)求和返回會(huì)有幾部分

? ? 請(qǐng)求報(bào)文 :請(qǐng)求頭、請(qǐng)求行、空行、請(qǐng)求數(shù)據(jù)

? ? HTTP響應(yīng): 狀態(tài)行、消息報(bào)行、響應(yīng)正文


1xx:指示信息--表示請(qǐng)求已接收,繼續(xù)處理。

2xx:成功--表示請(qǐng)求已被成功接收、理解、接受。

3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作。

4xx:客戶端錯(cuò)誤--請(qǐng)求有語法錯(cuò)誤或請(qǐng)求無法實(shí)現(xiàn)。

5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求。? ??

常見狀態(tài)碼:

200 OK:客戶端請(qǐng)求成功。

400 Bad Request:客戶端請(qǐng)求有語法錯(cuò)誤,不能被服務(wù)器所理解。

401 Unauthorized:請(qǐng)求未經(jīng)授權(quán),這個(gè)狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用。

403 Forbidden:服務(wù)器收到請(qǐng)求,但是拒絕提供服務(wù)。

404 Not Found:請(qǐng)求資源不存在,舉個(gè)例子:輸入了錯(cuò)誤的URL。

500 Internal Server Error:服務(wù)器發(fā)生不可預(yù)期的錯(cuò)誤。

503 Server Unavailable:服務(wù)器當(dāng)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常,舉個(gè)例子:HTTP/1.1 200 OK(CRLF)。

Get和POST的區(qū)別

? ? Get明文傳輸,會(huì)保存在瀏覽器歷史記錄,可以被緩存,2048

? ? Post是通過請(qǐng)求header請(qǐng)求


1. IE瀏覽器對(duì)URL的長度現(xiàn)限制為2048字節(jié)(自己測試最多為2047字節(jié))。

2. 360極速瀏覽器對(duì)URL的長度限制為2118字節(jié)。

3. Firefox(Browser)對(duì)URL的長度限制為65536字節(jié)。

4. Safari(Browser)對(duì)URL的長度限制為80000字節(jié)。

5. Opera(Browser)對(duì)URL的長度限制為190000字節(jié)。

6. Google(chrome)對(duì)URL的長度限制為8182字節(jié)

3.輸入url到頁面加載全過程

? ? ?1。url: 協(xié)議名、域名、端口號(hào)

? ? 2. 緩存:?

? ? ? ? ? ? ? ? 強(qiáng)制緩存:優(yōu)先使用cache-control: max-age=緩存的秒數(shù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Expires: 是服務(wù)器時(shí)間,瀏覽器檢查當(dāng)前時(shí)間,如果沒有失效就直接使用緩存文件

? ? ? ? ? ? ? ? 比較緩存:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? last-modified是上一次請(qǐng)求資源時(shí),服務(wù)器返回的字段,表示最后一次更新時(shí)間。下一次瀏覽器請(qǐng)求資源時(shí)會(huì)發(fā)if-modified-since字段,服務(wù)器用本地的last-modified和if-modified-since時(shí)間比較,如果一致,發(fā)送304狀態(tài)碼

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Etag: 資源的實(shí)體標(biāo)識(shí)(哈希字符串)服務(wù)器判斷是否發(fā)生變化,如果發(fā)生變化 304


? ? 3.DNS域名解析

? ? ? ? 1.瀏覽器檢查本地hosts文件是否有這個(gè)網(wǎng)站的映射關(guān)系

? ? ? ? 2.查找本地DNS解析器緩存

? ? ? ? 3. 查找本地DNS服務(wù)器

????4. TCP連接

? ? ? 第一握手: 建立連接。發(fā)送syn包到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn);

? ? 第二次握手: 服務(wù)器收到syn包

? ?5.瀏覽器向服務(wù)器發(fā)送HTTP請(qǐng)求

6.瀏覽器接收響應(yīng)

7.頁面渲染

? ? ? ? 解析HTML,構(gòu)建DOM樹

? ? ? ? 解析CSS,生成CSS樹

? ? ? ? 合并DOM樹和CSS規(guī)則樹,生成render樹

? ? ? ? 布局render樹(reflow)

? ? ? ? 繪制render樹

8.關(guān)閉TCP連接或者保持連接

? ? ? ? 四次揮手:


Http和https的主要區(qū)別

? ? https需要證書,需要費(fèi)用

? ? http是超文本傳輸協(xié)議,信息是明文的,https的具有安全性的ssl加密傳輸協(xié)議

? ? 使用不同的連接方式 http:80? https:443

? ? http的連接很簡單,是無狀態(tài)的,https協(xié)議是ssl+http協(xié)議構(gòu)建可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http安全


跨域:

? ? 瀏覽器同源策略:?協(xié)議、域名、端口

? ? 1.document.domain解決無法讀取非同源網(wǎng)頁的Cookie問題

? ??????????(此方案僅限主域相同,子域不同的跨域應(yīng)用場景。)

?2.window.postMessage

? ??頁面和其打開的新窗口的數(shù)據(jù)傳遞

????多窗口之間消息傳遞

????頁面與嵌套的iframe消息傳遞

????上面三個(gè)場景的跨域數(shù)據(jù)傳遞

3.JSONP

只支持GET

? ? 核心思想: 網(wǎng)頁通過添加一個(gè)<script>元素,向服務(wù)器請(qǐng)求JSON數(shù)據(jù),服務(wù)器收到請(qǐng)求后,將數(shù)據(jù)放在一個(gè)指定名字的回調(diào)函數(shù)的參數(shù)位置傳回來。

? ? 原生實(shí)現(xiàn):

? ??????<script src="http://test.com/data.php?callback=dosomething"></script>

// 向服務(wù)器test.com發(fā)出請(qǐng)求,該請(qǐng)求的查詢字符串有一個(gè)callback參數(shù),用來指定回調(diào)函數(shù)的名字

// 處理服務(wù)器返回回調(diào)函數(shù)的數(shù)據(jù)

<script type="text/javascript">

? ? function dosomething(res){

? ? ? ? // 處理獲得的數(shù)據(jù)

? ? ? ? console.log(res.data)

? ? }

</script>

4.cors

? ??普通跨域請(qǐng)求:只需服務(wù)器端設(shè)置Access-Control-Allow-Origin

? ??帶cookie跨域請(qǐng)求:前后端都需要進(jìn)行設(shè)置

【前端設(shè)置】根據(jù)xhr.withCredentials字段判斷是否帶有cookie

5.cors返回頭

6.性能優(yōu)化:

? ? 1.減小請(qǐng)求資源大小或次數(shù)

? ? 2.盡量合并并壓縮css和js文件

? ? 3.盡量試用字體圖標(biāo)或svg

? ? 4.圖片懶加載

? ? 5.雪碧圖、精靈圖

? ? 6.減少對(duì)cookie的使用

? ? 7.避免使用iframe

8.減少使用閉包? 閉包所在的上下文不釋放

9.減少對(duì)DOM的操作,減少重繪和回流(重排)

10.減少css表達(dá)式使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容