Web前端經典面試題(二)

http和https的區別?

參考答案

http傳輸的資料都是未加密的,也就是明文的,網景公司設定了SSL協議來對http協議傳輸的資料進行加密處理,簡單來說https協議是由http和ssl協議構建的可進行加密傳輸和身份認證的網路協議,比http協議的安全性更高。主要的區別如下:

Https協議需要ca證書,費用較高。

http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。

使用不同的連結方式,埠也不同,一般而言,http協議的埠為80,https的埠為443

http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。

Cookie、sessionStorage、localStorage的區別

參考答案

共同點:都是儲存在瀏覽器端,並且是同源的

Cookie:cookie資料始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和伺服器間來回傳遞。而sessionStorage和localStorage不會自動把資料發給伺服器,僅在本地儲存。cookie資料還有路徑(path)的概念,可以限制cookie只屬於某個路徑下,儲存的大小很小隻有4K左右。(key:可以在瀏覽器和伺服器端來回傳遞,儲存容量小,只有大約4K左右)

sessionStorage:僅在當前瀏覽器視窗關閉前有效,自然也就不可能持久保持,localStorage:始終有效,視窗或瀏覽器關閉也一直儲存,因此用作持久資料;cookie只在設定的cookie過期時間之前一直有效,即使視窗或瀏覽器關閉。(key:本身就是一個回話過程,關閉瀏覽器後消失,session為一個回話,當頁面不同即使是同一頁面開啟兩次,也被視為同一次回話)

localStorage:localStorage 在所有同源視窗中都是共享的;cookie也是在所有同源視窗中都是共享的。(key:同源視窗都會共享,並且不會失效,不管視窗或者瀏覽器關閉與否都會始終生效)

補充說明一下cookie的作用:

儲存使用者登入狀態。例如將使用者id儲存於一個cookie內,這樣當用戶下次訪問該頁面時就不需要重新登入了,現在很多論壇和社群都提供這樣的功能。cookie還可以設定過期時間,當超過時間期限後,cookie就會自動消失。因此,系統往往可以提示使用者保持登入狀態的時間:常見選項有一個月、三個月 、一年等。

跟蹤使用者行為。例如一個天氣預報網站,能夠根據使用者選擇的地區顯示當地的天氣情況。如果每次都需要選擇所在地是繁瑣的,當利用了 cookie後就會顯得很人性化了,系統能夠記住上一次訪問的地區,當下次再開啟該頁面時,它就會自動顯示上次使用者所在地區的天氣情況。因為一切都是在後面 臺完成,所以這樣的頁面就像是為某個使用者所定製的一樣,使用起來非常方便

定製頁面。如果網站提供了換膚或更換佈局的功能,那麼可以使用cookie來記錄使用者的選項,例如:背景色、解析度等。當用戶下次訪問時,仍然可以儲存上一次訪問的介面風格。

清除浮動的方式有哪些?比較好的是哪一種?

背景:當在頁面上使用float來實現頁面浮動的時候,會出現浮動塌陷,那麼常見的清除浮動塌陷的方式有哪幾種呢?

參考答案

常用的一般為三種

。clearfix

clear:both

overflow:hidden

比較好是

。clearfix

,偽元素萬金油版本,後兩者有侷限性。

。clearfix:after { visibility: hidden; display: block; font-size: 0; content: “ ”; clear: both; height: 0;}<!——為毛沒有 zoom ,_height 這些,IE6,7這類需要 csshack 不再我們考慮之內了。clearfix 還有另外一種寫法,——>。clearfix:before, 。clearfix:after { content:“”; display:table;}。clearfix:after{ clear:both; overflow:hidden;}。clearfix{ zoom:1;}<!——用display:table 是為了避免外邊距margin重疊導致的margin塌陷,內部元素預設會成為 table-cell 單元格的形式——>

clear:both

:若是用在同一個容器內相鄰元素上,那是賊好的,有時候在容器外就有些問題了, 比如相鄰容器的包裹層元素塌陷

overflow:hidden

:這種若是用在同個容器內,可以形成

BFC

避免浮動造成的元素塌陷

感覺說法有問題的朋友,可以關注我,一起私信探討噢