2018-03-28 http知識小結(jié)

一、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可以有效的防止運營商劫持,解決了防劫持的一個大問題。

HTTP與HTTPS使用協(xié)議圖解

四、使用SPDY加快你的網(wǎng)站速度

(1)多路復用(2)請求優(yōu)先級(3)header壓縮(4)基于HTTPS加密協(xié)議傳輸(5)服務器端推送

http2.0是基于SPDY的基礎(chǔ)上進行改進的


SPDY構(gòu)成圖

五、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

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

相關(guān)閱讀更多精彩內(nèi)容

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