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