自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

十分鐘搞懂HTTP和HTTPS協(xié)議?

網(wǎng)絡(luò) 通信技術(shù)
很多人都有這種心態(tài),但相識(shí)HTTP和HTTPS之間的區(qū)別,怎樣切換,以及是否使開(kāi)關(guān)得當(dāng)您的品牌開(kāi)始是至關(guān)緊張的。

[[276795]]

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é)議的縮寫,英文是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ù)類型為HTML 文件,、圖片文件, 查詢結(jié)果等。

HTTP協(xié)議一般用于B/S架構(gòu)()。瀏覽器作為HTTP客戶端通過(guò)URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請(qǐng)求。

我們以訪問(wèn)百度為例:

十分鐘搞懂HTTP和HTTPS協(xié)議?

訪問(wèn)百度流程

4.HTTP特點(diǎn)

http協(xié)議支持客戶端/服務(wù)端模式,也是一種請(qǐng)求/響應(yīng)模式的協(xié)議。簡(jiǎn)單快速:客戶向服務(wù)器請(qǐng)求服務(wù)時(shí),只需傳送請(qǐng)求方法和路徑。請(qǐng)求方法常用的有GET、HEAD、POST。靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對(duì)象。傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。無(wú)連接:限制每次連接只處理一個(gè)請(qǐng)求。服務(wù)器處理完請(qǐng)求,并收到客戶的應(yīng)答后,即斷開(kāi)連接,但是卻不利于客戶端與服務(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)成

  1. 請(qǐng)求行:包括請(qǐng)求方法、URL、協(xié)議/版本
  2. 請(qǐng)求頭(Request Header)
  3. 請(qǐng)求正文
十分鐘搞懂HTTP和HTTPS協(xié)議?

請(qǐng)求報(bào)文組成

響應(yīng)報(bào)文構(gòu)成

  1. 狀態(tài)行
  2. 響應(yīng)頭
  3. 響應(yīng)正文
十分鐘搞懂HTTP和HTTPS協(xié)議?

響應(yīng)報(bào)文組成

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:類似于get請(qǐng)求,只不過(guò)返回的響應(yīng)中沒(méi)有具體的內(nèi)容,用于獲取報(bào)頭PUT:從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。DELETE:請(qǐng)求服務(wù)器刪除指定的頁(yè)面。

get請(qǐng)求

十分鐘搞懂HTTP和HTTPS協(xié)議?

GET請(qǐng)求

post請(qǐng)求

十分鐘搞懂HTTP和HTTPS協(xié)議?

POST請(qǐng)求

post和get的區(qū)別:

都包含請(qǐng)求頭請(qǐng)求行,post多了請(qǐng)求body。get多用來(lái)查詢,請(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)部的,用戶無(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)碼分類:

  • 1XX- 信息型,服務(wù)器收到請(qǐng)求,需要請(qǐng)求者繼續(xù)操作。2XX- 成功型,請(qǐng)求成功收到,理解并處理。
  • 3XX - 重定向,需要進(jìn)一步的操作以完成請(qǐng)求。
  • 4XX - 客戶端錯(cuò)誤,請(qǐng)求包含語(yǔ)法錯(cuò)誤或無(wú)法完成請(qǐng)求。
  • 5XX - 服務(wù)器錯(cuò)誤,服務(wù)器在處理請(qǐng)求的過(guò)程中發(fā)生了錯(cuò)誤。

常見(jiàn)狀態(tài)碼:

  • 200 OK - 客戶端請(qǐng)求成功301 - 資源(網(wǎng)頁(yè)等)被永久轉(zhuǎn)移到其它URL
  • 302 - 臨時(shí)跳轉(zhuǎn)
  • 400 Bad Request - 客戶端請(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)前不能處理客戶端的請(qǐng)求,一段時(shí)間后可能恢復(fù)正常。

9.為什么要用https?

實(shí)際使用中,絕大說(shuō)的網(wǎng)站現(xiàn)在都采用的是https協(xié)議,這也是未來(lái)互聯(lián)網(wǎng)發(fā)展的趨勢(shì)。下面是通過(guò)wireshark抓取的一個(gè)博客網(wǎng)站的登錄請(qǐng)求過(guò)程。

十分鐘搞懂HTTP和HTTPS協(xié)議?

博客登錄抓包

可以看到訪問(wèn)的賬號(hào)密碼都是明文傳輸, 這樣客戶端發(fā)出的請(qǐng)求很容易被不法分子截取利用,因此,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證書來(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ù)的流程是什么?

十分鐘搞懂HTTP和HTTPS協(xié)議?

HTTPS數(shù)據(jù)傳輸流程

首先客戶端通過(guò)URL訪問(wèn)服務(wù)器建立SSL連接。服務(wù)端收到客戶端請(qǐng)求后,會(huì)將網(wǎng)站支持的證書信息(證書中包含公鑰)傳送一份給客戶端??蛻舳说姆?wù)器開(kāi)始協(xié)商SSL連接的安全等級(jí),也就是信息加密的等級(jí)??蛻舳说臑g覽器根據(jù)雙方同意的安全等級(jí),建立會(huì)話密鑰,然后利用網(wǎng)站的公鑰將會(huì)話密鑰加密,并傳送給網(wǎng)站。服務(wù)器利用自己的私鑰解密出會(huì)話密鑰。服務(wù)器利用會(huì)話密鑰加密與客戶端之間的通信。

12.HTTPS的缺點(diǎn)

HTTPS協(xié)議多次握手,導(dǎo)致頁(yè)面的加載時(shí)間延長(zhǎng)近50%;HTTPS連接緩存不如HTTP高效,會(huì)增加數(shù)據(jù)開(kāi)銷和功耗;申請(qǐng)SSL證書需要錢,功能越強(qiáng)大的證書費(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。

 

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2024-01-29 00:20:00

GolangGo代碼

2020-12-17 06:48:21

SQLkafkaMySQL

2022-03-21 08:05:38

HTTP/1.1QUIC協(xié)議

2019-04-01 14:59:56

負(fù)載均衡服務(wù)器網(wǎng)絡(luò)

2021-09-07 09:40:20

Spark大數(shù)據(jù)引擎

2022-06-16 07:31:41

Web組件封裝HTML 標(biāo)簽

2024-06-19 09:58:29

2023-04-12 11:18:51

甘特圖前端

2022-03-23 09:32:38

微服務(wù)容器Kubernetes

2012-07-10 01:22:32

PythonPython教程

2015-09-06 09:22:24

框架搭建快速高效app

2024-05-13 09:28:43

Flink SQL大數(shù)據(jù)

2023-11-30 10:21:48

虛擬列表虛擬列表工具庫(kù)

2024-03-04 15:19:52

Python編程內(nèi)建函數(shù)

2023-07-15 18:26:51

LinuxABI

2009-10-09 14:45:29

VB程序

2024-11-07 16:09:53

2022-08-26 09:01:07

CSSFlex 布局

2023-09-26 22:12:13

數(shù)據(jù)倉(cāng)庫(kù)Doris

2020-12-11 09:40:10

DevOpsCICD
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)