易班技術部前端面試題目
表單提交中Get和Post方式的區別?
(1)、 get 是從服務器上獲取數據, post 是向服務器傳送數據。
(2)、 get 是把參數數據隊列加到提交表單的 ACTION 屬性所指的 URL 中,值和表單內各個字段一一對應,在 URL 中可以看到。 post 是通過 HTTP post 機制,將表單內各個字段與其內容放置在 HTML HEADER 內一起傳送到 ACTION 屬性所指的 URL 地址 , 用戶看不到這個過程。
(3)、對於 get 方式,服務器端用 Request.QueryString 獲取變量的值,對於 post 方式,服務器端用 Request.Form 獲取提交的數據。
(4)、 get 傳送的數據量較小,不能大於 2KB 。 post 傳送的數據量較大,一般被默認為不受限制。但理論上, IIS4 中最大量為 80KB , IIS5 中為100KB 。
(5)、 get 安全性低, post 安全性較高。
get參數通過url傳遞,post放在request body中。
get請求在url中傳遞的參數是有長度限制的,而post沒有。
get比post更不安全,因為參數直接暴露在url中,所以不能用來傳遞敏感信息。
get請求只能進行url編碼,而post支持多種編碼方式
get請求會瀏覽器主動cache,而post支持多種編碼方式。
get請求參數會被完整保留在瀏覽歷史記錄里,而post中的參數不會被保留。
GET和POST本質上就是TCP鏈接,並無差別。但是由於HTTP的規定和瀏覽器/服務器的限制,導致他們在應用過程中體現出一些不同。
GET產生一個TCP數據包;POST產生兩個TCP數據包。
說一下http和https
參考回答:
https的SSL加密是在傳輸層實現的。
(1)http和https的基本概念
http: 超文本傳輸協議,是互聯網上應用最為廣泛的一種網絡協議,是一個客戶端和服務器端請求和應答的標准(TCP),用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網絡傳輸減少。
https: 是以安全為目標的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
https協議的主要作用是:建立一個信息安全通道,來確保數組的傳輸,確保網站的真實性。
(2)http和https的區別?
http傳輸的數據都是未加密的,也就是明文的,網景公司設置了SSL協議來對http協議傳輸的數據進行加密處理,簡單來說https協議是由http和ssl協議構建的可進行加密傳輸和身份認證的網絡協議,比http協議的安全性更高。
主要的區別如下:
Https協議需要ca證書,費用較高。
http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
使用不同的鏈接方式,端口也不同,一般而言,http協議的端口為80,https的端口為443
http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
(3)https協議的工作原理
客戶端在使用HTTPS方式與Web服務器通信時有以下幾個步驟,如圖所示。
客戶使用https url訪問服務器,則要求web 服務器建立ssl鏈接。
web服務器接收到客戶端的請求之后,會將網站的證書(證書中包含了公鑰),返回或者說傳輸給客戶端。
客戶端和web服務器端開始協商SSL鏈接的安全等級,也就是加密等級。
客戶端瀏覽器通過雙方協商一致的安全等級,建立會話密鑰,然后通過網站的公鑰來加密會話密鑰,並傳送給網站。
web服務器通過自己的私鑰解密出會話密鑰。
web服務器通過會話密鑰加密與客戶端之間的通信。
(4)https協議的優點
使用HTTPS協議可認證用戶和服務器,確保數據發送到正確的客戶機和服務器;
HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全,可防止數據在傳輸過程中不被竊取、改變,確保數據的完整性。
HTTPS是現行架構下最安全的解決方案,雖然不是絕對安全,但它大幅增加了中間人攻擊的成本。
谷歌曾在2014年8月份調整搜索引擎算法,並稱“比起同等HTTP網站,采用HTTPS加密的網站在搜索結果中的排名將會更高”。
(5)https協議的缺點
https握手階段比較費時,會使頁面加載時間延長50%,增加10%~20%的耗電。
https緩存不如http高效,會增加數據開銷。
SSL證書也需要錢,功能越強大的證書費用越高。
SSL證書需要綁定IP,不能再同一個ip上綁定多個域名,ipv4資源支持不了這種消耗。
TCP和UDP的區別
參考回答:
(1)TCP是面向連接的,udp是無連接的即發送數據前不需要先建立鏈接。
(2)TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付。 並且因為tcp可靠,面向連接,不會丟失數據因此適合大數據量的交換。
(3)TCP是面向字節流,UDP面向報文,並且網絡出現擁塞不會使得發送速率降低(因此會出現丟包,對實時的應用比如IP電話和視頻會議等)。
(4)TCP只能是1對1的,UDP支持1對1,1對多。
(5)TCP的首部較大為20字節,而UDP只有8字節。
(6)TCP是面向連接的可靠性傳輸,而UDP是不可靠的。
Cookie和session的區別
參考回答:
\1. cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
\2. cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session。
\3. session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能
考慮到減輕服務器性能方面,應當使用COOKIE。
\4. 單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
介紹知道的http返回的狀態碼
參考回答:
100 Continue 繼續。客戶端應繼續其請求
101 Switching Protocols 切換協議。服務器根據客戶端的請求切換協議。只能切換到更高級的協議,例如,切換到HTTP的新版本協議
200 OK 請求成功。一般用於GET與POST請求
201 Created 已創建。成功請求並創建了新的資源
202 Accepted 已接受。已經接受請求,但未處理完成
203 Non-Authoritative Information 非授權信息。請求成功。但返回的meta信息不在原始的服務器,而是一個副本
204 No Content 無內容。服務器成功處理,但未返回內容。在未更新網頁的情況下,可確保瀏覽器繼續顯示當前文檔
205 Reset Content 重置內容。服務器處理成功,用戶終端(例如:瀏覽器)應重置文檔視圖。可通過此返回碼清除瀏覽器的表單域
206 Partial Content 部分內容。服務器成功處理了部分GET請求
300 Multiple Choices 多種選擇。請求的資源可包括多個位置,相應可返回一個資源特征與地址的列表用於用戶終端(例如:瀏覽器)選擇
301 Moved Permanently 永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI。今后任何新的請求都應使用新的URI代替
302 Found 臨時移動。與301類似。但資源只是臨時被移動。客戶端應繼續使用原有URI
303 See Other 查看其它地址。與301類似。使用GET和POST請求查看
304 Not Modified 未修改。所請求的資源未修改,服務器返回此狀態碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源
305 Use Proxy 使用代理。所請求的資源必須通過代理訪問
306 Unused 已經被廢棄的HTTP狀態碼
307 Temporary Redirect 臨時重定向。與302類似。使用GET請求重定向
400 Bad Request 客戶端請求的語法錯誤,服務器無法理解
401 Unauthorized 請求要求用戶的身份認證
402 Payment Required 保留,將來使用
403 Forbidden 服務器理解請求客戶端的請求,但是拒絕執行此請求
404 Not Found 服務器無法根據客戶端的請求找到資源(網頁)。通過此代碼,網站設計人員可設置"您所請求的資源無法找到"的個性頁面
405 Method Not Allowed 客戶端請求中的方法被禁止
406 Not Acceptable 服務器無法根據客戶端請求的內容特性完成請求
407 Proxy Authentication Required 請求要求代理的身份認證,與401類似,但請求者應當使用代理進行授權
408 Request Time-out 服務器等待客戶端發送的請求時間過長,超時
409 Conflict 服務器完成客戶端的PUT請求是可能返回此代碼,服務器處理請求時發生了沖突
410 Gone 客戶端請求的資源已經不存在。410不同於404,如果資源以前有現在被永久刪除了可使用410代碼,網站設計人員可通過301代碼指定資源的新位置
411 Length Required 服務器無法處理客戶端發送的不帶Content-Length的請求信息
412 Precondition Failed 客戶端請求信息的先決條件錯誤
413 Request Entity Too Large 由於請求的實體過大,服務器無法處理,因此拒絕請求。為防止客戶端的連續請求,服務器可能會關閉連接。如果只是服務器暫時無法處理,則會包含一個Retry-After的響應信息
414 Request-URI Too Large 請求的URI過長(URI通常為網址),服務器無法處理
415 Unsupported Media Type 服務器無法處理請求附帶的媒體格式
416 Requested range not satisfiable 客戶端請求的范圍無效
417 Expectation Failed 服務器無法滿足Expect的請求頭信息
500 Internal Server Error 服務器內部錯誤,無法完成請求
501 Not Implemented 服務器不支持請求的功能,無法完成請求
502 Bad Gateway 作為網關或者代理工作的服務器嘗試執行請求時,從遠程服務器接收到了一個無效的響應
503 Service Unavailable 由於超載或系統維護,服務器暫時的無法處理客戶端的請求。延時的長度可包含在服務器的Retry-After頭信息中
504 Gateway Time-out 充當網關或代理的服務器,未及時從遠端服務器獲取請求
505 HTTP Version not supported 服務器不支持請求的HTTP協議的版本,無法完成處理
HTTP支持的方法
參考回答:
GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT
輸入URL到頁面加載顯示完成發生了什么?
參考回答:
DNS解析
TCP連接
發送HTTP請求
服務器處理請求並返回HTTP報文
瀏覽器解析渲染頁面
連接結束
聊天性質的
讀過哪些書或者課程, 學習過哪些教程視頻, 交過哪些智商稅
做過的項目, 遇到的問題, 簡單介紹;
還有什么要問的嗎?