1、請你談談cookie的·弊端
- IE6或更低版本最多擁有20個cookie
- IE7和之後的版本可以有50個cookie
- FireFox最多50個cookie
- chorme和Safari沒有硬性限制
優點
- 通過良好的編程,控制保存在cookie中session對象的大小
- 通過加密和安全傳輸技術(SSL),減少cookie被破解的可能性
- 只在cookie中存放不敏感數據,即使被盜了也不會有重大損失
- 控制cookie的生命週期,使之不永久有效。
缺點
- Cookie數量和長度的限制。每個domain最多隻能存儲20條cookie,每個cookie長度不能超過4k,否則會被截掉。
- 安全性問題。如果cookie被攔截了,就可以獲得所有的session信息。
- 有些狀態不可能保存在客戶端。
2、display:none與visibility:hidden的區別。
display:none隱藏對應的元素,在文檔佈局中不再給他分配空間。
Visibility:hidden 隱藏對應的元素,但是在文檔佈局中仍保留原來的空間。
3、css中的link和@import區別。
- link屬於html標籤,而@import是css提供的。
- 頁面被加載時,link會同時被加載,而@import引用的css會等到頁面加載完再加載
- import只在IE5以上才識別,而link是標籤,無兼容問題。
- link方式的樣式的權重會高於@import的權重。
4、position的absolute和fixed的共同點和不同點。
- 共同點:
- 改變行內元素的呈現方式,display被設置爲block
- 讓元素脫離普通流,不佔據空間
- 默認會覆蓋到非定位元素上
- 不同點
- absolute的根元素是可設置的,而fixed的根元素固定爲瀏覽器窗口。當你滾動網頁,fixed元素與瀏覽器窗口之間的距離是不變的。
5、css的盒子模型
IE盒子模型:標準的W3C盒子模型,IE的content部分包含了border和padding
盒模型:內容(content),填充(padding),邊界(margin),邊框(border)
6、闡述清楚浮動的幾種方式
- 父級div定義height
- 原理:父級div手動定義height,就解決了父級div無法獲取到高度的問題。
- 優點:代碼少,容易掌握
- 缺點:只適合於固定高度的佈局,要給出精確地高度
- 父級div定義overflow:hidden
- 原理:必須定義width或zoom:1。同時不能定義height,使用overflow:auto時,瀏覽器會自動檢查浮動區域的高度。
- 優點:代碼少,瀏覽器支持好
- 結尾處加空div標籤 添加 clear:both屬性
- 原理:添加一個空div利用clear:both清除浮動,讓父級div能自動獲取到高度
- 優點:代碼少,瀏覽器支持好
7、postion的值
- absolute 生成絕對定位的元素,相對於最近一級的定位不是static的父元素來進行定位
- relative 生成相對定位的元素,相對於在普通流中的位置進行定位
- fixed (老IE不支持)生成固定定位的元素,通常相對於瀏覽器窗口或iframe進行定位
- static 默認值 沒有定位,元素出現在正常流中
- sticky 生成粘性定位的元素,容器的位置根據正常文檔流計算得出 (目前webkit使用 -webkit-sticky)
- inherit 繼承父級元素的position值
- initial 默認值
- unset 可理解爲不設置 是關鍵字inherit 和 initial 的組合
8、initial、inherit、unset關鍵字
- initial關鍵字用於設置CSS屬性爲它的默認值,可用於任何CSS樣式(IE不支持該關鍵字)
- unset 可理解爲不設置 是關鍵字inherit 和 initial 的組合,當我們給一個CSS設置了unset的話:1、如果該屬性是默認繼承屬性,該值等同於inherit。2、如果該屬性是非繼承屬性,該值等同於initial
- inherit:每一個CSS屬性都有一個特性就是:這個屬性必然是默認繼承的(inherited:Yes)或者是默認不繼承的(inherited:no)其中之一,可以在MDN上查找,判斷一個屬性的是否繼承特性。
9、可繼承屬性:
默認爲 inherited: Yes 的屬性:
- 所有元素可繼承:visibility 和 cursor
- 內聯元素可繼承:letter-spacing、word-spacing、white-space、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform、direction
- 塊狀元素可繼承:text-indent和text-align
- 列表元素可繼承:list-style、list-style-type、list-style-position、list-style-image
- 表格元素可繼承:border-collapse
10、TCP/IP連接的三次握手
第一次握手:客戶端發送一個SYN包給服務器,表示請求連接。
第二次握手:服務器發送SYN+ACK包給客戶端,表示收到你的請求,並同意連接。
第三次握手:客戶端發送確認包ACK給服務器,表示確認並開始連接。
11、TCP/IP斷開的四次揮手
第一次揮手:客戶端發送一個FIN包給服務器,表示將要關閉客戶端到服務器的這個方向的連接
第二次揮手:服務器發送一個ACK包個客戶端,表示同意客戶端關閉連接的請求,但是還未準備好關閉連接
第三次揮手:服務器發送一個FIN包給客戶端,表示將要關閉服務器到客戶端這個方向的連接
第四次揮手:客戶端發送確認包ACK給服務器,表示確認並關閉連接
12、TCP建立連接需要三次握手,而斷開連接需要四次揮手的原因
因爲當服務器收到客戶端的SYN連接請求報文後,可以直接發送SYN+ACK報文。其中ACK保溫是用來應答的,SYN報文是用來同步的,但關閉連接時,當服務器端收到FIN報文時,很可能並不會立即關閉SOCKET,所以只能先回復一個ACK報文,告訴客戶端,‘你發來的FIN報文我收到了’。只有等服務器端所有的報文都發送完了,服務器才能發送FIN報文,因此不能一起發送,故需要四步揮手
13、從輸出一個URL到瀏覽器加載整個網頁的過程
- 瀏覽器通過DNS服務器解析查找URL對應的IP地址
- 瀏覽器向服務器發送http請求,建立TCP連接
- 服務器響應並處理http請求,並返回響應的文件
- 瀏覽器開始處理數據信息,並渲染頁面,顯示出來
14、TCP/IP五層模型中對應的協議
- 應用層:HTTP(超文本傳輸協議),FTP(文件傳送協議),SMTP(簡單郵件傳送協議)
- 運輸層:TCP(傳輸控制協議)、UDP(用戶數據報協議)
- 網絡層:IP(網際協議),ICMP(網際控制報文協議)
- 數據鏈路層:PPP(點對點協議),CSMA/CD(載波監聽多點接入/碰撞檢測協議)
- 物理層:IEEE802系列(局域網與城域網系列標準協議)
15、TCP與UDP的區別
- TCP是面向對象連接的協議、UDP是無連接協議
- TCP是可靠、有序、無界的,而UDP不可靠、無序、有界;
- TCP有流量控制(擁塞控制),而UDP沒有
- TCP傳輸速度慢,而UDP傳輸速度快
- TCP是重量級的,UDP是輕量級的,TCP的頭部比UDP大
- TCP面向字節流,UDP面向報文
- TCP是點對點連接的,而UDP是一對一,一對多,多對對都可以
- TCP適合用於網頁、郵件等,而UDP適用於視頻,語音廣播等
16、HTTP中GET與POST的區別?
1、GET從指定的資源請求數據,POST向指定的資源提交要被處理的數據;
2、GET請求有長度限制,而POST沒有;
3、GET的安全性較差,而POST比GET更安全;
4、GET請求參數會被完整的保留在瀏覽器歷史記錄裏,而POST中的參數不會被保留;
5、GET請求能被緩存、收藏爲書籤,而POST不能;
6、GET請求只能進行URL編碼,而POST支持多種編碼方式;
7、GET數據在URL中對所有人都是可見的,而POST數據不會顯示在URL中;
8、GET和POST本質上就是TCP連接,但是GET產生一個TCP數據包,而POST產生兩個TCP數據包。