1.什么是協(xié)議?
網(wǎng)絡協(xié)議是計算機之間為了實現(xiàn)網(wǎng)絡通信而達成的一種“約定”或者”規(guī)則“,有了這種”約定“,不同廠商的生產(chǎn)設備,以及不同操作系統(tǒng)組成的計算機之間,就可以實現(xiàn)通信。
2.HTTP協(xié)議是什么?
HTTP協(xié)議是超文本傳輸協(xié)議的縮寫,英文是Hyper Text Transfer Protocol。它是從WEB服務器傳輸超文本標記語言(HTML)到本地瀏覽器的傳送協(xié)議。
設計HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。
HTPP有多個版本,目前廣泛使用的是HTTP/1.1版本。
3.HTTP原理
HTTP是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)的協(xié)議,傳輸?shù)臄?shù)據(jù)類型為HTML 文件,、圖片文件, 查詢結(jié)果等。
HTTP協(xié)議一般用于B/S架構(gòu)()。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發(fā)送所有請求。
4.HTTP特點
http協(xié)議支持客戶端/服務端模式,也是一種請求/響應模式的協(xié)議。
簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。
靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。傳輸?shù)念愋陀蒀ontent-Type加以標記。
無連接:限制每次連接只處理一個請求。服務器處理完請求,并收到客戶的應答后,即斷開連接,但是卻不利于客戶端與服務器保持會話連接,為了彌補這種不足,產(chǎn)生了兩項記錄http狀態(tài)的技術(shù),一個叫做Cookie,一個叫做Session。
無狀態(tài):無狀態(tài)是指協(xié)議對于事務處理沒有記憶,后續(xù)處理需要前面的信息,則必須重傳。
5.URI和URL的區(qū)別
HTTP使用統(tǒng)一資源標識符(Uniform Resource Identifiers, URI)來傳輸數(shù)據(jù)和建立連接。
• URI:Uniform Resource Identifier 統(tǒng)一資源標識符
• URL:Uniform Resource Location 統(tǒng)一資源定位符
URI 是用來標示 一個具體的資源的,我們可以通過 URI 知道一個資源是什么。
URL 則是用來定位具體的資源的,標示了一個具體的資源位置。互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL。
6.HTTP報文組成
請求報文構(gòu)成
請求行:包括請求方法、URL、協(xié)議/版本
請求頭(Request Header)
請求正文
7.常見請求方法
• GET:請求指定的頁面信息,并返回實體主體。
• POST:向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。
• HEAD:類似于get請求,只不過返回的響應中沒有具體的內(nèi)容,用于獲取報頭
• PUT:從客戶端向服務器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。
• DELETE:請求服務器刪除指定的頁面。
post和get的區(qū)別:
• 都包含請求頭請求行,post多了請求body。
• get多用來查詢,請求參數(shù)放在url中,不會對服務器上的內(nèi)容產(chǎn)生作用。post用來提交,如把賬號密碼放入body中。
• GET是直接添加到URL后面的,直接就可以在URL中看到內(nèi)容,而POST是放在報文內(nèi)部的,用戶無法直接看到。
• GET提交的數(shù)據(jù)長度是有限制的,因為URL長度有限制,具體的長度限制視瀏覽器而定。而POST沒有。
8.響應狀態(tài)碼
訪問一個網(wǎng)頁時,瀏覽器會向web服務器發(fā)出請求。此網(wǎng)頁所在的服務器會返回一個包含HTTP狀態(tài)碼的信息頭用以響應瀏覽器的請求。
狀態(tài)碼分類:
• 1XX- 信息型,服務器收到請求,需要請求者繼續(xù)操作。
• 2XX- 成功型,請求成功收到,理解并處理。
• 3XX - 重定向,需要進一步的操作以完成請求。
• 4XX - 客戶端錯誤,請求包含語法錯誤或無法完成請求。
• 5XX - 服務器錯誤,服務器在處理請求的過程中發(fā)生了錯誤。
常見狀態(tài)碼:
• 200 OK - 客戶端請求成功
• 301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL
• 302 - 臨時跳轉(zhuǎn)
• 400 Bad Request - 客戶端請求有語法錯誤,不能被服務器所理解
• 401 Unauthorized - 請求未經(jīng)授權(quán),這個狀態(tài)代碼必須和WWW-Authenticate報頭域一起使用
• 404 - 請求資源不存在,可能是輸入了錯誤的URL
• 500 - 服務器內(nèi)部發(fā)生了不可預期的錯誤
• 503 Server Unavailable - 服務器當前不能處理客戶端的請求,一段時間后可能恢復正常。
9.為什么要用https?
實際使用中,絕大說的網(wǎng)站現(xiàn)在都采用的是https協(xié)議,這也是未來互聯(lián)網(wǎng)發(fā)展的趨勢。
HTTP協(xié)議不適合傳輸一些敏感信息,比如:各種賬號、密碼等信息,使用http協(xié)議傳輸隱私信息非常不安全。
一般http中存在如下問題:
• 請求信息明文傳輸,容易被竊聽截取。
• 數(shù)據(jù)的完整性未校驗,容易被篡改
• 沒有驗證對方身份,存在冒充危險
10.什么是HTTPS?
為了解決上述HTTP存在的問題,就用到了HTTPS。
HTTPS 協(xié)議(HyperText Transfer Protocol over Secure Socket Layer):一般理解為HTTP+SSL/TLS,通過 SSL證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信進行加密。
那么SSL又是什么?
SSL(Secure Socket Layer,安全套接字層):1994年為 Netscape 所研發(fā),SSL 協(xié)議位于 TCP/IP 協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。
TLS(Transport Layer Security,傳輸層安全):其前身是 SSL,它最初的幾個版本(SSL 1.0、SSL 2.0、SSL 3.0)由網(wǎng)景公司開發(fā),1999年從 3.1 開始被 IETF 標準化并改名,發(fā)展至今已經(jīng)有 TLS 1.0、TLS 1.1、TLS 1.2 三個版本。SSL3.0和TLS1.0由于存在安全漏洞,已經(jīng)很少被使用到。TLS 1.3 改動會比較大,目前還在草案階段,目前使用最廣泛的是TLS 1.1、TLS 1.2。
SSL發(fā)展史(互聯(lián)網(wǎng)加密通信)
1994年NetSpace公司設計SSL協(xié)議(Secure Sockets Layout)1.0版本,但未發(fā)布。
1995年NetSpace發(fā)布SSL/2.0版本,很快發(fā)現(xiàn)有嚴重漏洞
1996年發(fā)布SSL/3.0版本,得到大規(guī)模應用
1999年,發(fā)布了SSL升級版TLS/1.0版本,目前應用最廣泛的版本
2006年和2008年,發(fā)布了TLS/1.1版本和TLS/1.2版本
11.瀏覽器在使用HTTPS傳輸數(shù)據(jù)的流程是什么?
數(shù)據(jù)傳輸流程
首先客戶端通過URL訪問服務器建立SSL連接。
服務端收到客戶端請求后,會將網(wǎng)站支持的證書信息(證書中包含公鑰)傳送一份給客戶端。
客戶端的服務器開始協(xié)商SSL連接的安全等級,也就是信息加密的等級。
客戶端的瀏覽器根據(jù)雙方同意的安全等級,建立會話密鑰,然后利用網(wǎng)站的公鑰將會話密鑰加密,并傳送給網(wǎng)站。
服務器利用自己的私鑰解密出會話密鑰。
服務器利用會話密鑰加密與客戶端之間的通信。
12.HTTPS的缺點
• HTTPS協(xié)議多次握手,導致頁面的加載時間延長近50%;
• HTTPS連接緩存不如HTTP高效,會增加數(shù)據(jù)開銷和功耗;
• 申請SSL證書需要錢,功能越強大的證書費用越高。
• SSL涉及到的安全算法會消耗 CPU 資源,對服務器資源消耗較大。
13.總結(jié)HTTPS和HTTP的區(qū)別
• HTTPS是HTTP協(xié)議的安全版本,HTTP協(xié)議的數(shù)據(jù)傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協(xié)議進行了加密處理。
• http和https使用連接方式不同,默認端口也不一樣,http是80,https是443。
更多內(nèi)容
>>本文地址:http://liujunjsxg.cn/zhuanye/2021/69435.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?