一、http2.0、http1.1、http1.0的區(qū)別:
http1.0:(1)每進行一次HTTP通信就要建立和斷開一次TCP連接,增加服務端的負載,降低了客戶端的顯示速度。(2)利用文本與服務器交互。
http1.1新增特性:(1)默認支持持久連接,在一次TCP連接中可以發(fā)送多個HTTP請求,減少由于TCP連接造成的開銷,降低服務器負載,web顯示頁面加快;(2)支持只發(fā)送header信息,不帶body信息。(3)支持host域,web server上的多個虛擬站點可以共享同一個ip和端口。host可以標注虛擬機域名(4)range域,可以請求某個對象的一部分。
http2.0:(1)支持多路復用:在同一個連接中,并發(fā)處理多個請求;(2)協(xié)議的基本單位為二進制幀:在應用層和傳輸層之間加了一個二進制分幀層;(3)支持首部壓縮:數(shù)據(jù)體積變小,傳輸速度更快;(4)服務器推送:服務器可以根據(jù)客戶端的一個請求發(fā)送多個響應。例如將js和css文件主動推送給客戶端,無需等到解析html后……(5)可以設(shè)置請求優(yōu)先級
二、TCP協(xié)議的三次握手、四次揮手
TCP協(xié)議作用于傳輸層:(1)將大塊數(shù)據(jù)分割成報文段(數(shù)據(jù)包)(2)確認是否送達。
三次握手:
1、第一次握手:建立連接時,客戶端A發(fā)送SYN包(SYN=j)到服務器B,并進入SYN_SEND狀態(tài),等待服務器B確認。
2、第二次握手:服務器B收到SYN包,必須確認客戶A的SYN(ACK=j+1),同時自己也發(fā)送一個SYN包(SYN=k),即SYN+ACK包,此時服務器B進入SYN_RECV狀態(tài)。
3、第三次握手:客戶端A收到服務器B的SYN+ACK包,向服務器B發(fā)送確認包ACK(ACK=k+1),此包發(fā)送完畢,客戶端A和服務器B進入ESTABLISHED狀態(tài),完成三次握手。
完成握手后,開始傳送數(shù)據(jù)。
四次揮手:
(1)客戶端A發(fā)送一個FIN,用來關(guān)閉客戶A到服務器B的數(shù)據(jù)傳送。(服務端寫通道關(guān)閉)
(2)服務器B收到這個FIN,它發(fā)回一個ACK,確認序號為收到的序號加1。和SYN一樣,一個FIN將占用一個序號。(客戶端讀通道關(guān)閉)
(3)服務器B關(guān)閉與客戶端A的連接,發(fā)送一個FIN給客戶端A。(客戶端寫通道關(guān)閉)
(4)客戶端A發(fā)回ACK報文確認,并將確認序號設(shè)置為收到序號加1。(服務端讀通道關(guān)閉)
TCP協(xié)議的連接是全雙工連接,一個TCP連接存在雙向的讀寫通道。
簡單說來是 “先關(guān)寫,后關(guān)讀”,一共需要四個階段。
三、HTTPS與HTTP的一些區(qū)別
(1)HTTPS協(xié)議需要到CA申請證書,一般免費證書很少,需要交費。
(2)HTTP協(xié)議運行在TCP之上,所有傳輸?shù)膬?nèi)容都是明文,HTTPS運行在SSL/TLS之上,SSL/TLS運行在TCP之上,所有傳輸?shù)膬?nèi)容都經(jīng)過加密的。
(3)HTTP和HTTPS使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
(4)HTTPS可以有效的防止運營商劫持,解決了防劫持的一個大問題。

四、使用SPDY加快你的網(wǎng)站速度
(1)多路復用(2)請求優(yōu)先級(3)header壓縮(4)基于HTTPS加密協(xié)議傳輸(5)服務器端推送
http2.0是基于SPDY的基礎(chǔ)上進行改進的

五、Web攻擊與防御
(1)XSS跨站腳本攻擊
比如表單的提交,惡意的輸入帶有非法的HTML標簽或者JS文件,如果服務端對這些進行處理,會造成安全隱患。
防御:服務端對輸入進行字符轉(zhuǎn)義。
(2)SQL注入攻擊
運行非法的數(shù)據(jù)庫語言對數(shù)據(jù)庫進行攻擊,改寫數(shù)據(jù)庫里的數(shù)據(jù)。
防御:服務端對輸入進行驗證,對輸入字符轉(zhuǎn)義。
(3)CSRF跨站偽造請求
攻擊者盜用某個身份,以該身份發(fā)送惡意請求;造成隱私泄露及財產(chǎn)安全。
某個客戶端登錄個人信息后訪問正常的網(wǎng)站A,在未登出的情況下,訪問了惡意網(wǎng)站B,網(wǎng)站B盜用客戶端的信息,以其身份向網(wǎng)站A發(fā)送惡意請求,造成隱私泄露及財產(chǎn)安全。
防御:添加客戶端驗證、服務端驗證環(huán)節(jié);不要信任輸入的信息。
(4)DDOS攻擊
攻擊者生成某網(wǎng)站訪問權(quán)限要求的偽登錄信息,頻繁不停歇的發(fā)送請求,直至服務器因無法處理過多請求而崩潰。
防御:在服務端加入驗證環(huán)節(jié),將惡意發(fā)送請求的加入黑名單,對它的請求不予響應。
六、HTTP請求方法有哪些
HTTP/1.1協(xié)議中共定義了八種方法(有時也叫“動作”)來表明Request-URI指定的資源的不同操作方式:
(1)OPTIONS返回服務器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務器發(fā)送'*'的請求來測試服務器的功能性。用作預檢請求,由服務器自主發(fā)送
(2)HEAD向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內(nèi)容的情況下,就可以獲取包含在響應消息頭中的元信息。
(3)GET向特定的資源發(fā)出請求。注意:GET方法不應當被用于產(chǎn)生“副作用”的操作中,例如在web app.中。其中一個原因是GET可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問。(查)
(4)POST向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。(改,增)
(5)PUT向指定資源位置上傳其最新內(nèi)容。(增)
(6)DELETE請求服務器刪除Request-URI所標識的資源。(刪)
(7)TRACE回顯服務器收到的請求,主要用于測試或診斷。
(8)CONNECT?HTTP/1.1協(xié)議中預留給能夠?qū)⑦B接改為管道方式的代理服務器。
七、post請求和put請求的區(qū)別
post:非冪等=>創(chuàng)建資源
put:冪等(一個冪等操作的特點就是其任意多次執(zhí)行所產(chǎn)生的影響均與依次一次執(zhí)行的影響相同。)=>更新資源
八、post請求和get請求的區(qū)別
詳見3-26騰訊電面
參考博客:
https://www.cnblogs.com/wjlog/p/5827168.html
https://blog.csdn.net/u012657197/article/details/77877840
https://blog.csdn.net/m_xiaoer/article/details/72903355